23-Keepalived配置Nginx自动重启,实现7X24小时不间断服务
2023-06-13 09:12:26 时间
Keepalived配置Nginx自动重启,实现7X24小时不间断服务
现在主备是正常的, Keepalived服务关闭会自动切换到backup, 那么要是Nginx挂了呢
136模拟Nginx停止
./nginx -s quit
此时HA明显还存在, 但是却无法访问了
编写脚本检测Nginx
进入Keepalived配置文件夹
cd /etc/keepalived/
vi check_nginx_alive_or_not.sh
编写脚本内容
#!/bin/bash
# 用于检测Nginx进程
A=`ps -C nginx --no-header |wc -l`
# 判断Nginx是否宕机, 如果宕机, 尝试重启
if [ $A -eq 0 ];then
# 启动Nginx 为了防止pid问题, 指定配置文件
/usr/local/nginx/sbin/nginx
# 等待一会再次检查Nginx, 如果没有启动成功, 则停止Keepalived, 使其启动备用机
sleep 3
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
# 终止 Keepalived进程
killall keepalived
fi
fi
添加执行权限
chmod +x check_nginx_alive_or_not.sh
这个时候浏览器还是访问不了的
手动执行一下脚本
./check_nginx_alive_or_not.sh
nginx已经被启动, 恢复正常
在Keepalived配置脚本中增加监听, 让Keepalived自动去循环check..这个脚本
vi keepalived.conf
修改后的配置
! Configuration File for keepalived
global_defs {
# 路由ID, 当前安装Keepalived节点主机的标识符, 全局唯一
router_id keep_136
}
# 检测Nginx的进程
vrrp_script check_nginx_alive {
# 检测脚本
script "/etc/keepalived/check_nginx_alive_or_not.sh"
# 每2秒运行一次
interval 2
# 如果脚本运行成功, 则升级权重+10, 如果配置为-10, 那么脚本运行失败权重-10
weight 10
}
# 计算机的节点
vrrp_instance VI_1 {
# 节点状态, MASTER代表主节点 BACKUP代表备用节点
state MASTER
# 使用ens33网卡
interface ens33
# 虚拟路由ID, 保持MASTER和BACKUP一致
virtual_router_id 51
# 优先级/权重 100 谁的优先级高, 在MASTER宕机后, 谁就能成为MASTER
priority 100
# 主备之间的心跳周期 1秒
advert_int 1
# 认证授权, 防止非法节点的进入
authentication {
auth_type PASS
auth_pass 1111
}
# 追踪Nginx脚本
track_script {
check_nginx_alive
}
# 虚拟IP
virtual_ipaddress {
192.168.247.140
}
}
修改完成后重启Keepalived服务
systemctl restart keepalived.service
此时140是可以访问的
手动停止Nginx
./nginx -s stop
还是可以访问的, 此时Nginx一旦停止就会被Keepalived自动拉起, 如果拉起失败, 就会结束keepalived, 自动切换备用机, 实现7X24小时不间断服务
相关文章
- io电平转换芯片_一般plc均配置io电平转换
- 扔掉工具类!MyBatis 一个简单配置搞定加密、解密,不能太方便了~!
- springboot的自动配置原理/步骤
- spring 中配置sessionFactory及用法
- SpringBoot数据库配置源码解析:自动配置注解解析
- ZooKeeper学习总结【概念,安装配置,命令操作,JAVA API操作,集群搭建,案例所写代码】
- 在Linux下配置MySQL随系统自动启动
- Activiti 配置Oracle不能自动创建表解决方法详解编程语言
- Spring Cloud 入门教程(四): 分布式环境下自动发现配置服务详解编程语言
- MM自动过账-库存科目与抵消类科目GBB配置详解编程语言
- STMS配置三系统传输路径详解编程语言
- Linux网卡自动启动功能配置(linux网卡开机启动)
- 如何在Centos 8上配置自动软件包更新
- 自动备份Redis配置RDB自动实现数据备份(redis配置rdb)
- Linux下的域名配置操作(linux配置主机域名)
- MySQL远程连接:快速搭建配置指南(mysql 远程连接配置)