比方说,我有2个服务器 – SA和SB。 是否可以configurationHAProxy的工作是这样的:
所有连接进入SA – > SA下降 – > HAProxy将所有连接切换到SB – >直到SB没有closures – 即使再次连接到SA,连接也不会连接到SA – > SB断开 – > HAProxy切换到SA .. 。
简而言之,我希望HAProxy仅在当前服务器出现故障时切换。 也许我应该用别的比HAProxy?
看看这个configuration:
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秒后(3次间隔10秒)将使服务器脱机。 web02将被联机并且所有的请求将会被触发。
如果web01恢复,只有在99999999以10秒为间隔检查时才会恢复在线状态 – 这实际上从未如此。
如果您只有两台服务器,并且只有两台服务器,则可以通过使用vip来pipe理通过pacemaker / corosyncpipe理的服务,使其具有高可用性。
通过将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按照你想要的方式行事。 我至less从来没有使用它。