KeepAliveD + HaProxy - 只有主服务器应运行活动的 HaProxy 服务

KeepAliveD + HaProxy - 只有主服务器应运行活动的 HaProxy 服务

是否可以配置 keepalived 以便只有主服务器运行来自 haproxy 的活动服务?

目前,LB1 和 LB2(均使用 keepalived 和 haproxy)运行良好。但有时某些请求来自 LB2(它是备份,日志也显示这一点),这会导致浏览器中出现连接错误

我停用了 LB2 上的 haproxy(service haproxy stop),一切正常。但现在当 LB1 停机时,LB2 会进入主服务器,并且 haproxy 服务尚未启动。

我正在使用 Ubuntu Server 14.04。

答案1

该方法名为通知。您必须keepalived.conf在两个服务器上都输入示例:

notify /etc/keepalived/notify-keepalived.sh

代码如下notfiy-keepalived.sh

#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
        "MASTER") /usr/sbin/service haproxy start
                  ;;
        "BACKUP") /usr/sbin/service haproxy stop
                  ;;
        "FAULT")  /usr/sbin/service haproxy stop
                  exit 0
                  ;;
        *)        /sbin/logger "haproxy unknown state"
                  exit 1
                  ;;
esac

现在,keepalived 将在进入三种状态之一时执行命令。

相关内容