三、keepalived配置nginx自动重启,实现7X24不间断服务

三、keepalived配置nginx自动重启,实现7X24不间断服务

    • 一、编写nginx重启脚本
    • 二、配置keepalived监听脚本
    • 三、重启keepalived
    • 四、测试

一、编写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小时不间断服务。

你可能感兴趣的:(keepalived原理与实战)