您的位置:首页 > 运维架构 > Nginx

keepalived-配置nginx自动重启

2020-07-14 05:42 70 查看
  1. 基础预设
      192.168.10.133(master)/192.168.10.138(backup),均已安装好nginx和keepalived
    • keepalived已注册为系统服务
  2. 新建nginx自动重启的脚本,
    vim /etc/keepalived/check_nginx_alive_or_not.sh
    ,内容如下,新建成功后,修改下脚本的文件权限,
    chmod +x /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
  1. 配置keepalived监听nginx脚本,
    vim /etc/keepalived/keepalived.conf
    ,修改内容成如下,框红为新增部分
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 2 # 每隔两秒运行上一行脚本
weight 10 # 如果脚本运行成功,则升级权重+10
# weight -10 # 如果脚本运行失败,则升级权重-10
}

track_script {
check_nginx_alive   # 追踪 nginx 脚本
}
  1. 重启keepalived,使配置文件生效,
    systemctl restart keepalived
  2. 关闭nginx,
    /usr/local/nginx/sbin/nginx -s stop
    ,再次查看,
    ps -ef | grep nginx
    ,nginx仍然活着,因为每隔2秒会做一次检查
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: