一、目的
搭建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 } }