三、keepalived配置nginx自動重啓,實現7X24不間斷服務

三、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小時不間斷服務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章