keepalived根据服务是否可用切换vip
安装组件
yum -y install keepalived yum install -y psmisc #需要用到killall指令做健康检查
主节点配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | [root@nginx-01 ~] # cat /etc/keepalived/keepalived.conf<br>global_defs { router_id nginx } vrrp_script check_nginx { script "killall -0 nginx" #nginx为system服务名 interval 2 # 检测间隔时间,即两秒检测一次 fall 2 # 检测失败的最大次数,超过两次认为节点资源发生故障 rise 2 # 请求两次成功认为节点恢复正常 weight -50 #一个正整数或负整数。权重值,关系到整个集群角色选举 } vrrp_instance VI_1 { state backup #主节点也需要设置为backup,如果设置为master,当nginx服务挂掉之后,vip会暂时飘到备节点,但当主节点服务启起来之后,会再次将vip抢占回来 interface ens192 #网卡名 virtual_router_id 168 #虚拟路由id,用于区分不同的vrrp实例 priority 100 #值越大优先级越高 advert_int 1 #nopreempt #非抢占模式参数,不要取消注释 authentication { auth_type PASS auth_pass H1_shanghaiweizhong } virtual_ipaddress { 172.16.168.5 /24 #vip,注意填写真实地址 } track_script { check_nginx #对应vrrp_script } } |
从节点配置
[root@nginx-02 ~]# cat /etc/keepalived/keepalived.conf global_defs { router_id nginx } vrrp_script check_nginx { script "killall -0 nginx" #nginx为system服务名 interval 2 # 检测间隔时间,即两秒检测一次 fall 2 # 检测失败的最大次数,超过两次认为节点资源发生故障 rise 2 # 请求两次成功认为节点恢复正常 weight -50 #一个正整数或负整数。权重值,关系到整个集群角色选举 } vrrp_instance VI_1 { state backup #主节点也需要设置为backup,如果设置为master,当nginx服务挂掉之后,vip会暂时飘到备节点,但当主节点服务启起来之后,会再次将vip抢占回来 interface ens192 #网卡名 virtual_router_id 168 #虚拟路由id,用于区分不同的vrrp实例 priority 90 #值越大优先级越高 advert_int 1 #nopreempt #非抢占模式参数,不要取消注释,一般只需要state为master时,且只有master节点才需要配置 authentication { auth_type PASS auth_pass H1_shanghaiweizhong } virtual_ipaddress { 172.16.168.5/24 #vip,注意填写真实地址 } track_script { check_nginx #对应vrrp_script } }
验证:
主备机分别停用nginx,观察vip是否正常来回切换
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)