backup
ディレクティブの場合、Nginxのドキュメント states は最低限:
サーバーをバックアップサーバーとしてマークします。プライマリサーバーが利用できない場合は、リクエストが渡されます。
複数のバックアップがあり、プライマリサーバーがダウンした場合、バックアップの1つが新しいプライマリに指定されますか?またはそれらの間のNginxラウンドロビンでしょうか?
コンテキスト:
プライマリサーバーと複数のバックアップがありますが、すべての接続は常に同じプライマリまたはバックアップに行く必要があります。 ip_hash ロードバランシングモードに似ていますが、all接続とクライアントに同じサーバーを使用する必要があります。
@Alberto Mendozaが答えたように、コンテキスト内のマルチバックアップサーバーはサポートしていませんが-
nGINXロードバランサーを実行している別のVPSへのバックアップを独自のバックアップに配置する場合...これは、現在マルチリージョンネットワークで使用している回避策です。
upstream routing {
server main_server:8080 max_fails=2 fail_timeout=5;
server backupServer1:8080 max_fails=1 fail_timeout=5;
server backupServer2:8080 backup;
}
メインサーバーが2秒間応答しない場合-最初のVPSバックアップが試行されます-なんらかの理由でDDOSであるか、何らかの理由でダウンしている場合-3番目のVPSに移動します。必要に応じてデイジーチェーンに。
テストを行ったところ、nginx
はマルチバックアップサーバーをサポートしていないようです。
upstream a {
server main_server:8080 max_fails=2 fail_timeout=5;
server backup1:8080 backup;
server backup2:8080 backup;
}
main_server:8080
がダウンすると、backup1:8080
は正しく応答します。 main_server:8080
およびbackup1:8080
がダウンしている場合、接続は拒否され、backup2:8080
に到達することはありません。