nginx+keepalived IP飄移(高可用)
阿新 • • 發佈:2018-12-24
1、安裝keepalived
yum install -y keepalived
設定開機自啟動
systemctl enable keepalived.service
2、修改配置檔案
(1)主配置檔案
vim /etc/keepalived/keepalived.conf
global_defs { router_id keep_01 } vrrp_script chk_nginx { script "/etc/keepalived/check_nginx.sh" interval5 weight -20 } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 150 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.144/24 dev eth0 label eth0:1 } track_script { chk_nginx } }
(2)備配置檔案
global_defs { router_id keep_02 } vrrp_script chk_nginx { script "killall -0 nginx" script "/etc/keepalived/check_nginx.sh" interval 5 weight -20 } vrrp_instance VI_1 { state BACKUP interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass1111 } virtual_ipaddress { 192.168.1.144/24 dev eth0 label eth0:1 } track_script { chk_nginx } }
(3)主、備 新增Nginx狀態監測指令碼
#!/bin/bash A=`ps -C nginx --no-header | wc -l` if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 2 if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then pkill keepalived fi fi
(4)啟動或者重啟keepalived服務
systemctl restart keepalived
3、驗證
(1)通過虛擬IP訪問
(2)停掉nginx,指令碼會在兩秒後自動執行監測nginx,然後啟動,如果只停掉主的keepalived服務,就會出現腦裂情況,所以這裡為了不出現這些情況,我停掉主伺服器來驗證
(3)如果還不不相信自己做成功,用抓包工具wireshark來驗證