栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Keepalived配置Nginx自动重启,实现不间断服务

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Keepalived配置Nginx自动重启,实现不间断服务

续接上篇https://blog.csdn.net/qq_44299529/article/details/122987503

上回说到我们应该让nginx不间断的工作,只要主节点nginx没问题,就可以重启。除非主节点nginx出错,才切换成备用节点的nginx。那么现在就让我们来实现。

步骤:

1、进入到keepalived的配置文件,新建 check_nginx_alive_or_not.sh 脚本文件

2、check_nginx_alive_or_not.sh 脚本文件内容如下,根据注释,自行修改

#!/bin/bash

A=`ps -C nginx --no-header |wc -l`
#判断nginx是否宕机,如果宕机了,尝试重启
if [ $A -eq 0 ];then
        # nginx的启动目录
        /usr/local/nginx/sbin/nginx
        # 等待3秒再次检查nginx,如果没有重启成功,则停止keepalived,使其启动备用机
        sleep 3
        if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
                kill keepalived
        fi
fi

3、给予文件可执行权限

chmod +x check_nginx_alive_or_not.sh

 4、进入主配置文件keepalived.conf,设置上述执行脚本文件check_nginx_alive_or_not.sh自动执行。       

vim keepalived.conf 

(1)先在里面添加一段每隔2秒执行脚本文件check_nginx_alive_or_not.sh的脚本

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

(2)在节点中调用上方写好的脚本check_nginx_alive

#调用上方写好的脚本check_nginx_alive
    track_script{
        check_nginx_alive  #追踪nginx脚本
    }

 :wq 保存,退出。

5、修改了keepalived的配置文件,需要重启。

为测试效果,在重启之前,先把nginx停了

 访问虚拟ip:192.168.217.2

 重启keepalived。 systemctl restart keepalived

(注:我这里已经把keepalived注册为系统服务,所以可以这样重启,如果不清楚的可以查看上一篇看最后的扩展。如果不想做也没关系,手动kill它的进程再重启) 

继续访问虚拟ip,成功!!!

 当然你也可以自己测试,不断输入 ./nginx -s stop 把nginx关闭,看是否能正常访问。

 嘿嘿,是不是不管怎么杀死nginx,都可以访问成功了呢~

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/740476.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号