keepalived weight正负值问题(实现主服务器nginx故障后迅速切换到备服务器)

Posted snuglove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keepalived weight正负值问题(实现主服务器nginx故障后迅速切换到备服务器)相关的知识,希望对你有一定的参考价值。

有两台负载均衡,lb01,lb02.  lb02, priority值为100

编辑keepalived配置文件   vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {
   router_id lb01            #定义节点名称,在一个高可用集群中不能重复
}
vrrp_script check_web {
   script "/server/scripts/check_web.sh"
   interval 2
   weight 20                   #正数时
}
vrrp_instance oldboy {       #定义族群名字
    state MASTER             #定义主备信息注释  (MASTER BACKUP)
    interface eth0           #指定VIP地址,在哪个网卡生成
    virtual_router_id 51     #标识
    priority 90              #优先级越高越有可能成为主
    advert_int 1             #发送组播包间隔时间   224.0.0.18
    authentication {         #认证,为明文认证
        auth_type PASS
        auth_pass 12345
    }
    virtual_ipaddress {
        10.0.0.3
    }
    track_script {
       check_web
     }
}

编写脚本文件vim /server/scripts/check_web.sh

#!/bin/bash 
nginx_count=`ps -ef|grep -c [n]ginx`
if [ $nginx_count -ge 2 ]            #判断 nginx进程数大于等于2是为真
then                                  #为了让逻辑不那么绕,采用判断结果为真,exit 就为真的方式,更好的理解weight正负值
exit
0 else exit 1 fi

weight 为正数时

nginx服务启动  脚本结果为真  ,故  priority+weight 为最终优先级数

nginx服务故障  脚本结果为假  ,故  priority    为最终优先级数

weight 为负数时

nginx服务启动  脚本结果为真  ,故  priority   为最终优先级数

nginx服务故障  脚本结果为假  ,故  priority+weight    为最终优先级数

技术图片图片所有权为老男孩所有,侵权请联系删除.

以上是关于keepalived weight正负值问题(实现主服务器nginx故障后迅速切换到备服务器)的主要内容,如果未能解决你的问题,请参考以下文章

构建高可用集群Keepalived+Haproxy

Keepalived 角色选举

keepalived之vrrp_script详解

请问LVS+keepalived,一台real server的weight为100,另一台为0,当weight为100的挂掉,另一台能work吗

高可用 - 08 Keepalived集群中Master和Backup角色选举策略

keepalived引用脚本的一点回顾