四 Keepalived配置Nginx自動重啟,實現7x24不間斷服務
阿新 • • 發佈:2020-10-16
1. 增加Nginx重啟檢測指令碼
vim /etc/keepalived/check_nginx_alive_or_not.sh
程式碼如下
#!/bin/bash A=`ps -C nginx --no-header |wc -l` # 判斷nginx是否宕機,如果宕機了,嘗試重啟 if [ $A -eq 0 ];then /usr/local/nginx/sbin/nginx # 等待一小會再次檢查nginx,如果沒有啟動成功,則停止keepalived,使其啟動備用機 sleep 3 if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then killall keepalived fi fi
增加執行許可權
chmod +x /etc/keepalived/check_nginx_alive_or_not.sh
2. 配置keepalived監聽nginx指令碼
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 # 每隔兩秒執行上一行指令碼
weight 10 # 如果指令碼執行失敗,則升級權重+10
}
3. 在 vrrp_instance 中新增監控的指令碼
track_script { check_nginx_alive # 追蹤 nginx 指令碼 }
4. 重啟Keepalived使得配置檔案生效
systemctl restart keepalived
下面是 MASTER Keepalived配置
! Configuration File for keepalived global_defs { # 路由id: 當前安裝keepalived節點主機的識別符號,全域性唯一 router_id LVS_DEVEL_128 } vrrp_script check_nginx_alive { script "/etc/keepalived/check_nginx_alive_or_not.sh" interval 2 # 每隔兩秒執行上一行指令碼 weight 10 # 如果指令碼執行失敗,則升級權重+10 } # 計算機節點 vrrp_instance VI_1 { # 表示的狀態,當前的128位nginx的主機點,MASTER/BACKUP state MASTER # 當前例項繫結的網絡卡 interface ens33 # 保證主備節點一致 virtual_router_id 51 # 優先順序/權重,誰的優先順序高,在MASTER掛掉以後,就成為MASTER priority 100 # 主備之間同步檢查的時間間隔,預設1s advert_int 1 # 認證密碼,防止非法節點的進入 authentication { auth_type PASS auth_pass 1111 } # 虛擬ip virtual_ipaddress { 192.168.174.121 } track_script { check_nginx_alive # 追蹤 nginx 指令碼 } }