バックエンド サーバが起動していて SE がバックエンド サーバに要求を送信できる場合に、サーバが応答する前に停止すると、サーバは HTTP 504 エラー コードで応答します。
SE は、読み取りタイムアウト(1 時間)まで応答を待機し、応答コード 504
でクライアントに応答します。エラーが発生するとクライアントまたはアプリケーション サーバが接続を終了するため、長いデフォルトのアイドル タイムアウトが発生します。
パラメータ upstream_connect_timeout はバックエンド接続のアイドル タイムアウトで、このタイムアウトのデフォルト値は 3,600,000 ミリ秒(1 時間)です。upstream_send_timeout と upstream_read_timeout のデフォルト値は 3,600,000 ミリ秒(1 時間)です。SE のアイドル接続のタイムアウト値は、シェル プロンプトを使用して変更できます。
上記のタイムアウト値の詳細については、『VMware NSX Advanced Load Balancer 構成ガイド』の「サービス エンジンでのバックエンド サーバのタイムアウト値」のトピックを参照してください。
HTTP 504
応答コードで 1 時間のタイムアウト値(待機時間)を許容できない場合は、次のいずれかの回避策を実行します。
解決策 1:シェル プロンプトを使用して、次のタイムアウト オプションの値を変更して、HTTP 504 応答コードの待機時間を短縮します。
upstream_connect_timeout
upstream_send_timeout
upstream_read_timeout
configure serviceengineproperties コマンドで se_runtime_properties オプションを使用します。
#shell Login: admin Password: [avi-cntrl1]: > configure serviceengineproperties [avi-cntrl1]: seproperties> se_runtime_properties [avi-cntrl1]: seproperties:se_runtime_properties> upstream_connect_timeout <value> [avi-cntrl1]: seproperties:se_runtime_properties> upstream_send_timeout <value> [avi-cntrl1]: seproperties:se_runtime_properties> upstream_read_timeout <value>
注:上記のタイムアウト オプションの値を変更すると、SE 上のすべての仮想サービスに影響します。
解決策 2:NSX Advanced Load Balancer ユーザー インターフェイスを使用して、[アイドル接続の期限切れ] を有効にし、[アイドル期間] の値を変更します。[プロファイル] 設定オプションを変更すると、SE は HTTP
503
応答コードで応答できます。[プロファイル] オプションを編集して、目的の仮想サービスのタイムアウト値を変更します。このオプションは、バックエンド サーバごとに動作が大きく異なっており、それぞれのサーバに別のタイムアウト値が必要な場合に使用します。 の順に移動して、目的の仮想サービスを選択します。編集アイコンをクリックします。
[プロファイル] セクションにある [TCP/UDP プロファイル] のドロップダウン メニューを選択します。
[TCP プロキシ設定] セクションの下にある [カスタム] タブを選択します。
[アイドル接続の期限切れ] オプションを選択し、[アイドル期間] に必要な値を設定します。[アイドル期間] は、キープアライブ プローブの期間またはアイドル セッションのタイムアウト値です。この値は秒単位で設定します。設定可能な最小値は 5 秒で、設定可能な最大値は 3,600 秒(1 時間)です。値をゼロに設定すると、アイドル タイムアウトが無限に設定されます。
注:サーバがアイドル状態になる時間が、[アイドル期間] として構成された時間以上になる場合、SE はバックエンド接続を終了します。この場合、SE は HTTP
503
応答コードで応答します。