三、keepalived配置nginx自動重啓,實現7X24不間斷服務
一、編寫nginx重啓腳本
在/etc/keepalived/目錄下,創建nginx重啓腳本
vi check_nginx_alive_or_not.sh
內容如下
#!/bin/bash
A=`ps -C nginx --no-header |wc -l`
# 判斷nginx是否宕機,如果宕機則重啓
if [ $A -eq 0 ];then
/opt/server/nginx/sbin/nginx
# 等待3秒再次檢查nginx,如果沒有啓動成功,則停止keepalived,使其啓動備用節點
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
二、配置keepalived監聽腳本
! Configuration File for keepalived
global_defs {
router_id keep_47
}
vrrp_script check_nginx_alive{
#定義腳本位置
script "/etc/keepalived/check_nginx_alive_or_not.sh"
#每隔兩秒運行上一行腳本
interval 2
#如果腳本運行成功,則升級權重+10,如果爲-10,則表示腳本運行失敗,則權重-10
weight 10
}
#計算機節點
vrrp_instance VI_1 {
state MASTER
#當前實例綁定的網卡
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script{
#追蹤上面定義的nginx腳本
check_nginx_alive
}
virtual_ipaddress {
172.17.35.161
}
}
三、重啓keepalived
systemctl restart keepalived
四、測試
停掉主節點的nginx服務後
訪問虛擬IP http://172.17.35.161/以然能正常訪問。
原因是keepalived服務會每間隔兩秒去檢查nginx服務狀態,如果nginx服務停止則啓動nginx服務,如果3秒後,nginx服務還未啓動,則停止keepalived服務,使得虛擬IP綁定到備用節點,備用節點代替主節點工作,實現7X24小時不間斷服務。