Haproxy配置问题:主服务器恢复上线后如何自动切回承接请求
HAProxy主服务器恢复自动切回配置调整方案
你的现有配置已经符合主备切换的基础逻辑:默认只要有任意一台主服务器(Server1/Server2)健康检查通过,新请求会自动分发到主服务器组。如果出现主服务器恢复后流量仍留在备用服务器的情况,通常是已建立的长连接未断开,或者健康检查感知太慢导致,可按以下方式调整:
调整方法
- 给主服务器的check参数后新增
on-marked-up shutdown-backup-sessions配置:该参数会在主服务器被标记为正常上线时,主动断开所有发往备用服务器的会话,保证所有流量全部切回主节点 - 可按需调整健康检查频率,加快主节点恢复的感知速度,示例中配置为每2秒检查一次,连续2次成功判定为正常,连续3次失败判定为异常
调整后完整配置
frontend Local_Server bind ssbbct1076:39250 mode http default_backend Web_Server backend Web_Server balance roundrobin option httplog option log-health-checks option allbackups # 主节点配置新增上线后断开备份会话参数,同时调整健康检查频率 server Server1 s2bbct01:39249 check inter 2000 rise 2 fall 3 on-marked-up shutdown-backup-sessions server Server2 s2bbct02:39249 check inter 2000 rise 2 fall 3 on-marked-up shutdown-backup-sessions server Server3 c1bbct01:39249 check backup server Server4 c1bbct02:39249 check backup
注意事项
on-marked-up shutdown-backup-sessions参数需要HAProxy 1.8及以上版本支持,低版本需先升级再配置- 若业务使用长连接,主动断开备用会话可能会导致正在进行的业务请求中断,可根据业务容忍度选择是否添加该配置,不添加时新请求仍会自动切回主节点,仅存量长连接会保留在备用节点直到连接结束
- 原有
option allbackups配置无需修改,可保证两台主服务器全部宕机时,两台备用服务器同时承接流量
内容的提问来源于stack exchange,提问作者Prashant Naik
相关产品推荐
相关产品推荐

