仅当服务器关闭时,HAProxy开关


13

假设我有2台服务器-SA和SB。是否可以将HAProxy配置为像这样工作:

所有连接均进入SA-> SA断开-> HAProxy将所有连接切换至SB->直到SB不断开-没有连接进入SA,即使再次恢复连接-> SB断开-> HAProxy切换至SA。 。

简而言之,我希望HAProxy仅在当前服务器出现故障时才进行切换。也许我应该使用HAProxy以外的其他工具?

Answers:


22

查看此配置:

listen my-server 0.0.0.0:80
    balance roundrobin
    server web01 10.10.10.1:80 check inter 10s fall 3 rise 99999999
    server web02 10.10.10.2:80 check backup

默认情况下,所有请求都将到达web01。web02将不被使用。如果web01停止响应,则30秒(每隔10秒检查3次)后,服务器将脱机。web02将上线,所有请求都将击中它。

如果web01恢复,则只有经过99999999次检查(间隔10秒)后,它才能重新联机-实际上永远不会。


看起来很有趣。我将尝试您的@Dennis解决方案。我还必须进行一些测试,以便获得一些结果。谢谢。
2013年

1
是否可以手动使web01脱机?不关闭web01 /终止其进程,仅将其标记为已关闭?
彭博2014年

仅供参考:inter默认为2s,fall默认为2,rise默认为2。更多信息,请参见:haproxy.org/download/1.5/doc/configuration.txt
Joshua Pinter

5
-1,解决方案在31年的正常运行时间后停止工作= P
Gaspa79

6

如果您只有两个服务器,恰好有两个服务器,则对通过起搏器/冠状动脉同步管理的服务使用vip使其具有更高的可用性可能更有意义。

通过将SB标记为备份服务器,也可以使用haproxy。这样,它仅在SA不可用时使用:

backend mybackend
mode            http
balance         roundrobin
option          httpchk /test.html
server          server1.example.com server1.example.com:80 weight 1 check port 80 inter 5s rise 3 fall 2
server          server2.example.com server2.example.com:80 backup weight 1 check port 80 inter 5s rise 3 fall 2

但是,这并没有完成您想要的第二部分:它将在返回时再次开始使用A SA。我不确定是否有使haproxy表现出您想要的方式的选项。我至少从未使用过它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.