サーバーがダウンしている場合のみHAProxyスイッチ


13

SAとSBの2つのサーバーがあるとします。次のように動作するようにHAProxyを構成することは可能ですか?

すべての接続がSAになります-> SAがダウンします-> HAProxyはSBにすべての接続を切り替えます-> SBがダウンしなくなるまで、SAに接続します。 。

簡単に言うと、現在のサーバーがダウンした場合にのみHAProxyを切り替えたいと思います。たぶん、HAProxy以外のsthを使用する必要がありますか?

回答:


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が回復した場合、10秒経過する間隔で99999999がチェックされるとオンラインに戻りますが、これは事実上不可能です。


おもしろそうです。あなたと@Dennisのソリューションを試します。また、いくつかのテストを行って、結果を得る必要があります。ありがとうございました。
ジョー

1
web01を手動でオフラインにすることはできますか?web01をシャットダウンしたり、そのプロセスを強制終了したりするのではなく、単に停止としてマークしますか?
リンボペン14

参考情報:interデフォルトは2秒、fallデフォルトは2、riseデフォルトは2です。詳細は、haproxy.org
Joshua Pinter

5
-1、解決策は、アップタイムの31年後に動作を停止P =
Gaspa79

6

サーバーが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を希望どおりに動作させるオプションがあるかどうかはわかりません。少なくとも一度も使ったことがない。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.