Keepalived配置Nginx自动重启

在两台Nginx服务器构建好Keepalived高可用之后,可以保证主节点宕机之后,启动备用节点,但是如果主节点没有宕机,但是主节点上的Nginx却停止工作了,那么这时候既不会启动备用节点,主节点上的Nginx又不能工作,这样还是会出现单节点的问题,所以需要在Keepalived中配置Nginx重启脚本,只要服务器没有宕机但是Nginx又不能工作的时候会重启Nginx(如果是其他的服务也是同样的道理)。

注:Keepalived并不是对服务器中的某一个服务或应用进行高可用配置的,而是对整个服务器进行高可用配置的。

1、增加Nginx重启检测脚本

在/etc/keepalived/目录下创建脚本check_nginx_alive_or_not.sh(我的Keepalived的配置文件在该目录下,其他目录下创建也可以),脚本内容如下:

#!/bin/bash
A=`ps -C nginx --no-header | wc -l`
# 判断nginx是否宕机,如果宕机尝试重启
if [ $A -eq 0 ];then
        /usr/local/nginx/sbin/nginx #执行nginx启动命令, /usr/local/nginx是nginx的安装位置
        # nginx重启之后,等待一小会,再次检查nginx,如果没有启动成功,则停止Keepalived,使其启动备用机
        sleep 3
        if [ `ps -C nginx --no-header | wc -l` -eq 0 ];then
                killall keepalived
        fi
fi

 为脚本赋予可执行权限:

chmod +x check_nginx_alive_or_not.sh

2、配置Keepalived监听Nginx脚本

在Keepalived的配置文件中添加配置:

vrrp_script check_nginx_alive {
	script "/etc/keepalived/check_nginx_alive_or_not.sh"
	interval 2 # 每个2秒运行一次脚本
	weight 10 # 如果脚本运行成功,则升级Keepalived权重+10
	# weight -10 # 如果脚本运行失败,则升级Keepalived权重-10
}

3、在Keepalived配置文件中的vrrp_instance中新增监控脚本

track_script {
	check_nginx_alive
}

4、重启Keepalived是配置生效

systemctl restart keepalived.service

 如果没有将Keepalived配置为系统服务,可以使用原生的方式重启Keepalived。

 

Keepalived的配置文件内容如下:

! Configuration File for keepalived

global_defs {
   # 路由id,当前节点主机的标识符,保证全局唯一
   router_id keep_20
}

vrrp_script check_nginx_alive {
	script "/etc/keepalived/check_nginx_alive_or_not.sh"
	interval 2 # 每个2秒运行一次脚本
	weight 10 # 如果脚本运行成功,则升级Keepalived权重+10
	# weight -10 # 如果脚本运行失败,则升级Keepalived权重-10
}

vrrp_instance VI_1 {
    # 标识状态:MASTER表示主节点,BACKUP表示备用节点
    state MASTER
    # 该实例绑定的网卡,centos7一般是ens33
    interface ens33
    # 虚拟路由ID,主备节点须保持一致
    virtual_router_id 51
    # 权重:master权重一般高于backup,如果有多个备用节点,在master节点挂掉以后,backup权重值最大的,就是新的master
    priority 100
    # 主备之间同步检查时间间隔,单位为妙
    advert_int 3
    # 认证权限密码,防止非法节点进入
    authentication {
        auth_type PASS
        auth_pass 1111
    }

    track_script {
	check_nginx_alive
    }

    virtual_ipaddress {
        192.168.40.161
    }
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值