nginx宕机-自动切换(脚本)
推导
ps aux |grep nginx
ps aux |grep -c nginx
[root@master mnt]
3
[root@master mnt]
1
正常是4 不正常是1
实现方式
第一种(手动)
1.编写一个nginx状态脚本
mkdir -p /server/sh
vim web.sh
pid=`ps aux |grep -c nginx`
echo $pid
if [ $pid -lt 3 ]
then
systemctl stop keepalived
fi
chmod +x web.sh
bash web.sh
第二种(自动)
2.修改配置文件(主库+从库)
主库:
cd /etc/keepalived
vim keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lb01
}
vrrp_script web {
script "/server/sh/web.sh"
interval 3
weight 2
}
vrrp_instance it {
state MASTER
interface eno16777736
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.1.100/24
}
track_script {
web
}
}
systemctl restart keepalived
重启一下,检查上面的语法是不是正确的
从库:
cd /etc/keepalived
vim keepalived.conf
! Configuration File for keepalived
global_defs {
router_id lb02
}
vrrp_script web {
script "/server/sh/web.sh"
interval 3
weight 2
}
vrrp_instance it {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.1.100/24
track_script {
web
}
}
}
systemctl restart keepalived
重启一下,检查上面的语法是不是正确的
测试:如果此时nginx状态死了,此时再看一下keepalived的状态是不是也挂了,如果是,那就成功了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!