是否可以配置 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 将在进入三种状态之一时执行命令。