环境:
| master | 192.168.76.3 |
| backup | 192.168.76.4 |
| vip | 192.168.76.123 |
| www.zb.com | 192.168.76.5 |
| static.zb.com | 192.168.76.6 |
| video.zb.com | 192.168.76.7 |
1.先给web服务器配置。
echo www.zb.com>/var/www/html/index.html
echo static.zb.com>/var/www/html/index.html
echo video.zb.com>/var/www/html/index.html
2.配置master的haproxy
安装haproxy,这里选择的yum安装 yum install haproxy -y
修改配置文件:
- global #全局配置
- log 127.0.0.1 local3 info #日志
- maxconn 4096 #最大连接
- uid nobody
- gid nobody
- daemon
- nbproc 1 #处理进程数量
- pidfile /run/haproxy.pid
-
- defaults #默认配置
- log global #按照全局配置
- mode http #类型
- maxconn 2048 #最大连接数
- retries 3 #尝试三次健康检查
- option redispatch #重新匹配
- #contimeout 5000 #连接sh计时器
- #clitimeout 50000 #
- #srvtimeout 50000
- timeout connect 5000
- timeout client 50000
- timeout server 50000
- option abortonclose #关闭选项
-
- stats uri /admin?stats #管理页面的配置格式
- stats realm Private lands #进入管理页面验证
- stats auth admin:password #密码
- stats hide-version #隐藏版本号
-
-
- frontend www #代理服务器前端
- bind *:80 #绑定地址
- mode http
- log global
- option httplog
- option httpclose
-
- #acl html url_reg -i \.html$ #访问控制列表
- acl host_www hdr_dom(host) -i www.zb.com
- acl host_static hdr_dom(host) -i static.zb.com
- acl host_video hdr_dom(host) -i video.zb.com
-
- #use_backend html-server if html
- use_backend server_www if host_www
- use_backend server_static if host_static
- use_backend server_video if host_video
-
- #default_backend html-server
-
- #backend html-server #后端服务器
- # mode http
- # balance roundrobin
- # option httpchk GET /index.html
- # cookie SERVERID insert indirect nocache
- # server html-A 192.168.76.5:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
- # server html-B 192.168.76.6:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5
-
- backend server_www
- mode http
- option redispatch
- option abortonclose
- balance roundrobin
- option httpchk GET /index.html
- server webapp1 192.168.76.5:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
-
-
- backend server_static
- mode http
- option redispatch
- option abortonclose
- balance roundrobin
- option httpchk GET /index.html
- server webapp1 192.168.76.6:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
-
- backend server_video
- mode http
- option redispatch
- option abortonclose
- balance roundrobin
- option httpchk GET /index.html
- server webapp1 192.168.76.7:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
启动服务,修改hosts文件:

然后测试,安装elinks,yum install elinks -y
测试: elinks --dump http:xxx.zb.com
backup的haproxy配置文件与master一样。
3.安装keepalived
yum install keepalived -y
修改配置文件master:
- ! Configuration File for keepalived
- global_defs {
- router_id 1 #设备在组中的标识,设置不一样即可
- }
-
- #vrrp_script chk_nginx { #健康检查
- # script "/etc/keepalived/check_nginx.sh" #检查脚本
- # interval 2 #检查频率.秒
- # weight -5 #priority减5
- # fall 3 #失败三次
- # }
-
- vrrp_instance VI_1 { #VI_1。实例名两台路由器相同。同学们要注意区分。
- state MASTER #主或者从状态
- interface ens33 #监控网卡
- mcast_src_ip 192.168.76.3 #心跳源IP
- virtual_router_id 55 #虚拟路由编号,主备要一致。同学们注意区分
- priority 100 #优先级
- advert_int 1 #心跳间隔
-
- authentication { #秘钥认证(1-8位)
- auth_type PASS
- auth_pass 123456
- }
-
- virtual_ipaddress { #VIP
- 192.168.76.123/24
- }
-
- # track_script { #引用脚本
- # chk_nginx
- # }
-
- }
backup不同之处:

4.测试
之前检测haproxy都配置成功,只需检测keepalived配置是否成功。
先停掉master网络连接。在backup上用ip a查看vip是否跳转到backup上,再开启master网络连接,看vip是否在master上。若在,就配置成功。