一、目的
搭建web高可用架构,用haproxy做为前段负载均衡分摊后端web服务器压力,Keepalived保证haproxy的存活(双机热备:一台haproxy挂了,自动切换到另一台haproxy上)
二、环境(系统均为centos7,防火墙与selinux都关闭)
192.168.0.100:web1(端口7000)、web2(端口8000)
192.168.0.101:haproxy一、keepalived(MASTER)
192.168.0.102:haproxy二、keepalived(BACKUP)
虚拟ip(VIP):192.168.0.11(端口8600)
三、搭建web1与web2
在192.168.0.100上安装docker,运行两个容器分别是web1与web2
四、分别在master和backup节点上安装haproxy与keepalived
直接yum安装,过程省略。。。
五、配置haproxy(在master与backup节点配置相同)linux
六、配置keepalived(master节点)web
global_defs { notification_email { acassen@firewall.loc failover@firewall.loc sysadmin@firewall.loc } notification_email_from Alexandre.Cassen@firewall.loc smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL } //如下部分是检查haproxy进程的脚本 vrrp_script chk_haproxy { script "killall -0 haproxy" interval 1 weight -5 fall 3 rise 5 } vrrp_instance VI_1 { state MASTER //此为主节点因此设置为master interface ens33 //指定网卡来映射虚拟ip virtual_router_id 51 //backup节点应与此id一致,不然vip没法漂移 priority 200 //值越大优先权越高,因此backup节点要低于此值 advert_int 1 authentication { //与backup节点认证的方式,需一致 auth_type PASS auth_pass 1111 } virtual_ipaddress { //虚拟节点的ip(vip) 192.168.0.11 } track_script { //指定haproxy脚本的名称 chk_haproxy } } virtual_server 192.168.0.11 8600 { //指定vip的端口为8600 delay_loop 6 lb_algo rr lb_kind NAT persistence_timeout 50 protocol TCP real_server 192.168.0.101 5000 { //指定haproxy的地址与端口 weight 1 } }