共计 2848 个字符,预计需要花费 8 分钟才能阅读完成。
实验思路:
1. 做这个实验首先可以想象一个场景,用户访问 webserver 的时候首先会经过调度器,首先需要明白的一点就是一般公司一般是在内网,客户端是通过外网访问 webserver 的。
2.haproxy 是一个负载均衡器,Keepalived 通过 VRRP 功能能再结合 LVS 负载均衡软件即可部署一个高性能的负载均衡集群系统,也就是说 haproxy 是解决后端 realserver 负载均衡的问题,keepalived 是解决调度器的高可用的问题。
3.haproxy 检测到后端服务器处于不健康的状态的时候会把后端 realserver 给剔除,通过权重的大小把客户端的访问调度到不同的 realserver 上;通过 keepalived 实现地址的漂移,当主调度器出现状况,就会把后端的 realserver 服务转移到另外一台调度器上。
4. 需要特别注意的就是,haproxy 可以自己寻找网关,不需要路由转发的功能。会把客户端的请求当做自己的请求拿到资源然后再返回给客户端,充当了代理的功能,也就是说并不需要 dip,如果是一台调度器,可以自己的外网卡充当 vip,因为这个时候不需要实现调度,不需要地址的漂移功能,如果是多台调度器需要配置 vip 实现地址的漂移,这个时候主坏掉,才能实现 webserver 所指向 的调度器变成从,从而实现 webserver 的访问(意思就是单台调度器 vip 可要可不要)。
实验准备:
两台 CentOS7 准备 realserver,两台 centos6 准备用于做 haproxy 主从架构,防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信。realserver 还是小米电子网站。
实验步骤:
第一步 :配置 keepalived,配置虚拟 ip。
主机 1.vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 30
priority 98
advert_int 1
# nopreempt
authentication {
auth_type PASS
auth_pass magedu
}
virtual_ipaddress {
172.17.120.120
}
notify_backup “/etc/keepalived/notify.sh backup”
notify_master “/etc/keepalived/notify.sh master”
notify_fault “/etc/keepalived/notify.sh fault”
}
主机 2.vrrp_instance VI_1 {
state MASTER
interface eth1
virtual_router_id 30
priority 100
advert_int 1
#nopreempt
authentication {
auth_type PASS
auth_pass magedu
}
virtual_ipaddress {
172.17.120.120
}
notify_backup “/etc/keepalived/notify.sh backup”
notify_master “/etc/keepalived/notify.sh master”
notify_fault “/etc/keepalived/notify.sh fault”
}
第二步 :配置 haproxy,连接 realserver。
1. 全局配置
log 127.0.0.1 local2 – 日志配置,配合 rsyslog 使用,在 rsyslog 中定义完成后要记得重启 rsyslog 服务。Centos6 自己创建定义的日志文件目录。
chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn 4000
user haproxy
group haproxy
daemon
2.haproxy 状态检测页面
listen stats
mode http
bind 0.0.0.0:1080
stats enable
stats uri /haproxyadmin
stats auth admin:admin
stats admin if TRUE
3. 客户端限制配置
frontend web
bind :80
default_backend lnmp-server
4.realserver 端配置
backend lnmp-server
balance roundrobin
option httpchk GET /index.html — 这个健康检测页面配置了就要有,没有就会认为 realserver 有误。
server lnmpserver1 172.17.252.78:80 check inter 3000 rise 3 fall 5
server lnmpserver2 172.17.110.110:80 check inter 3000 rise 3 fall 5
完整配置 :
5. 复制一份给另外一台 haproxy,保证配置是一样的。
第三步: 测试界面
1.backup 宕机
2.master 宕机
构建高可用集群 Keepalived+Haproxy 负载均衡 http://www.linuxidc.com/Linux/2016-12/138917.htm
HAproxy 的基本配置(负载均衡 + 日志独立 + 动静分离 + 读写分离)http://www.linuxidc.com/Linux/2017-03/141614.htm
CentOS 7 下 Keepalived + HAProxy 搭建配置详解 http://www.linuxidc.com/Linux/2017-03/141593.htm
HAproxy 实现反向代理和负载均衡 http://www.linuxidc.com/Linux/2016-12/138749.htm
HAProxy+Keepalived 实现高可用负载均衡 http://www.linuxidc.com/Linux/2016-06/132225.htm
使用 HAProxy 配置 HTTP 负载均衡器 http://www.linuxidc.com/Linux/2015-01/112487.htm
Ubuntu 16.04 下安装 HAProxy 1.5.11 做 tcp 负载均衡 http://www.linuxidc.com/Linux/2016-06/132689.htm
CentOS 7.2 部署 Haproxy 1.7.2 http://www.linuxidc.com/Linux/2017-10/147553.htm
HAproxy 的详细介绍 :请点这里
HAproxy 的下载地址 :请点这里
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-11/149012.htm