Nginx与Keepalived 实现站点高可用方案(4)

上文 vrrp_script 配置部分,killall -0 nginx属于第1种情况,/etc/keepalived/check_nginx.sh属于第2种情况(脚本中关闭keepalived)。个人更倾向于通过shell脚本判断,但有异常时exit 1,正常退出exit 0,然后keepalived根据动态调整的 vrrp_instance 优先级选举决定是否抢占VIP:

如果脚本执行结果为0,并且weight配置的值大于0,则优先级相应的增加

如果脚本执行结果非0,并且weight配置的值小于0,则优先级相应的减少

其他情况,原本配置的优先级不变,即配置文件中priority对应的值。

提示:

优先级不会不断的提高或者降低

可以编写多个检测脚本并为每个检测脚本设置不同的weight(在配置中列出就行)

不管提高优先级还是降低优先级,最终优先级的范围是在[1,254],不会出现优先级小于等于0或者优先级大于等于255的情况

在MASTER节点的 vrrp_instance 中 配置 nopreempt ,当它异常恢复后,即使它 prio 更高也不会抢占,这样可以避免正常情况下做无谓的切换

以上可以做到利用脚本检测业务进程的状态,并动态调整优先级从而实现主备切换。

一些关于Keepalived相关教程集合

CentOS 7下Keepalived + HAProxy 搭建配置详解 

Keepalived高可用集群应用场景与配置

Nginx+Keepalived实现站点高可用 

Nginx+Keepalived实现站点高可用(负载均衡) 

构建高可用集群Keepalived+Haproxy负载均衡

Nginx+Keepalived双机热备(主主模式) 

CentOS6.5下 Keepalived高可用服务单实例配置

Keepalived安装与配置

Nginx之Keepalived高可用 

Linux下Keepalived服务安装文档 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/138798b5e7cd222f1506e1a0fa232db0.html