回答:
この設定を確認してください:
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が回復した場合、10秒経過する間隔で99999999がチェックされるとオンラインに戻りますが、これは事実上不可能です。
サーバーが2つ、正確に2つしかない場合、pacemaker / corosyncで管理するサービスに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
ただし、これは目的のパート2を達成しません。戻ってきたらすぐにA SAの使用を再開します。haproxyを希望どおりに動作させるオプションがあるかどうかはわかりません。少なくとも一度も使ったことがない。