私のhaproxy設定は次のとおりです。
backend my-liveBackend
timeout connect 5s
timeout server 600s
mode http
balance uri len 52
server my-live-backend1 10.80.1.161:8080 check
server my-live-backend2 10.80.1.162:8080 check
server my-live-backend3 10.80.1.163:8080 check
server my-live-backend4 10.80.1.164:8080 check
server my-live-backend5 10.80.10.165:8080 check backup
server my-live-backend6 10.80.10.166:8080 check backup
server my-live-backend7 10.80.10.167:8080 check backup
server my-live-backend8 10.80.10.168:8080 check backup
バックアップ以外のサーバーでエラーが発生した場合、haproxyはそれを交換するためにバックアップサーバーをアクティブにしません。
私はバックアップではなく、すべてのタスクが失敗した場合にのみhaproxyがバックアップを有効にすることを理解しています。
https://cbonte.github.io/haproxy-dconv/1.8/configuration.html#5.2-backup
サーバー行に「バックアップ」がある場合、そのサーバーは他のすべての非バックアップサーバーが利用できない場合にロードバランシングにのみ使用されます。
実際には、ライブサーバーのメンテナンス中に複数のライブサーバー(4つの推奨)とバックアップサーバーが必要です。これを行うオプションはありますか? 「少なくとも4つのサーバーを常にアクティブにしたい」と同じです。
これを行う文書には何も見つかりません。
私の期待はこんな感じです。
- ライブ放送1
- Next live2
- ライブ3UP
- ライブ4 UP
- live5 BACKUP UP ACTIVE <<== 2がメンテナンス中に2を置き換えます。
- live6バックアップが有効になっていません
- live7バックアップが有効になっていません
- live8バックアップが有効になっていません
答え1
さて、私は立ち上がってhaproxy管理者に行きました、そして彼は次のように答えました。ロードマップにはありますが、ETAはなく、複雑なコード変更です。
ねえ:https://github.com/haproxy/haproxy/issues/866#issuecomment-776658824