NSX Data Center for vSphere 6.1.5 以降では、x-forwarded-for を有効にすると、HTTP 接続モードがパッシブ クローズ (option httpclose) からデフォルトの HTTP サーバ クローズ (option http-server-close) モードに変わります。サーバ クローズ オプションでは、クライアント側の接続はオープン状態を維持し、サーバからの応答の受信後にサーバ側の接続が終了します。NSX Data Center for vSphere 6.1.5 より前のバージョンでは、ロード バランサは接続を事前に終了せず、Connection:close ヘッダーを両方向に挿入し、クライアントまたはサーバに接続の終了を指示します。NSX Data Center for vSphere 6.1.5 以降へのアップグレード後に、ロード バランサで HTTP/HTTPS トランザクション エラーが発生する場合には、option httpclose スクリプトを指定してアプリケーション ルールを追加し、動作していない仮想サーバに関連付けます。

HTTP サーバ クローズ(デフォルト): 応答の終わりを受信すると、サーバ側の接続が終了しますが、クライアント側の接続はオープン状態を維持します。HTTP サーバ クローズでは、クライアント側(低速ネットワーク)が待機状態になり、サーバ側で高速セッションが再利用されるので、サーバ リソースの使用を抑制します。また、キープ アライブに対応していないサーバに、クライアント側からキープ アライブを提供することもできます。このモードは一般的なユースケースに適しています。特に、クライアント側のネットワークが低速で、サーバ側のネットワークが高速の場合に有効です。

HTTP キープ アライブ: すべての要求と応答が処理され、接続は維持されますが、応答から新しい要求までの間はアイドル状態になります。このモードでは、トランザクション間の待機時間が短く、サーバに要求する処理能力を低く抑えることができます。アクティブ セッションの数に合わせてメモリ要件が増加します。要求ごとに接続を終了することがないため、必要なメモリ量が多くなります。クライアント側のアイドル タイムアウトは、アプリケーション ルールの timeout http-keep-alive [time] で設定できます。デフォルトのアイドル タイムアウトは 1 秒です。アプリケーションで NTLM 認証が必要な場合、このモードは必須です。

HTTP トンネル: 最初の要求と応答のみが処理され、クライアントとサーバ間でトンネルが確立します。これにより、HTTP プロトコルを分析することなく、通信を行うことができます。トンネルが確立すると、クライアント側とサーバ側の両方で接続が維持されます。このモードを有効にするには、passive-close modeserver-close modeforce-close mode のすべてのオプションを設定しません。

HTTP トンネル モードは次の機能に影響を及ぼします。また、セッションの最初の要求と応答にのみに適用されます。
  • ログの生成
  • HTTP ヘッダーの解析
  • HTTP ヘッダーの操作
  • Cookie の処理
  • コンテンツの切り替え
  • X-Forwarded-For ヘッダーの挿入

HTTP パッシブ クローズ: トンネル モードと同じですが、クライアントとサーバの両方に Connection: close ヘッダーが追加されます。最初の要求と応答の交換が終わると、両端で接続を終了します。option httpclose が設定されている場合、ロード バランサは HTTP トンネル モードで動作し、各方向で Connection: close ヘッダーが設定されているかどうか確認します。ヘッダーがない場合、Connection: close ヘッダーを追加します。転送後、両端が TCP を終了し、HTTP クローズ モードに切り替わります。close 以外の接続ヘッダーは削除されます。アプリケーションで 2 番目以降の要求が正しく処理できない場合、たとえば、ロード バランサによって挿入された Cookie がクライアントからの要求で戻された場合は、トンネル モードまたはパッシブ クローズ モードを使用します。

HTTP サーバによっては、option httpclose で設定された Connection: close を受信しても、接続を終了する必要がない場合があります。クライアントが終了しない場合、タイムアウトになるまで接続が持続されます。この場合、サーバの同時接続数が多くなり、ログには長時間のグローバル セッション時間が記録されます。このため、古い HTTP 1.0 ブラウザとは互換性がありません。この状態が発生した場合には、option forceclose を使用して、サーバの応答を受信後、すぐに接続を終了します。forceclose を使用すると、クライアントの承認を待つ必要がないため、サーバ接続の解放が早くなります。

HTTP 強制終了: 応答の終了後、ロード バランサがクライアントとサーバの両方の接続を終了します。HTTP サーバによっては、option httpclose で設定された Connection: close を受信しても、接続を終了する必要がない場合があります。クライアントが終了しない場合、タイムアウトになるまで接続が持続されます。この場合、サーバの同時接続数が多くなり、ログには長時間のグローバル セッション時間が記録されます。この問題が発生した場合、option forceclose を使用すると、サーバが応答を完了するとすぐに実行中のサーバ チャネルが終了し、option httpclose を使用した場合よりも早くリソースの一部が解放されます。

バージョン デフォルトの接続モード 接続モード(
X-Forwarded-For
が有効な場合)
接続モードの切り替えに使用可能なアプリケーション ルール
NSX 6.0.x、6.1.0、6.1.1 HTTP サーバ クローズ 仮想サーバに option httpclose が自動的に追加され、HAProxy ドキュメントの仕様に従って各要求に xff が強制的に追加されます。バックエンド サーバにディスパッチするときに、クライアントからの要求に xff ヘッダーが追加されます。 いいえ
NSX 6.1.2 - 6.1.4 HTTP サーバ クローズ HTTP パッシブ クローズ(仮想サーバに option httpclose が自動的に追加される)

no option http-server-close

option httpclose

no option httpclose

NSX 6.1.5 - 6.1.x、NSX 6.2.0 - 6.2.2 HTTP サーバ クローズ バックエンド サーバにディスパッチするときに、クライアントからの要求に HTTP サーバ クローズ xff ヘッダーが追加されます。

no option http-server-close

option httpclose

no option httpclose

NSX 6.2.3 - 6.2.5 HTTP サーバ クローズ バックエンド サーバにディスパッチするときに、クライアントからの要求に HTTP サーバ クローズ xff ヘッダーが追加されます。

no option http-server-close

option httpclose

no option httpclose

NSX 6.2.3 - 6.2.5 HTTP サーバ クローズ バックエンド サーバにディスパッチするときに、クライアントからの要求に HTTP サーバ クローズ xff ヘッダーが追加されます。

no option http-server-close

no option httpclose

option httpclose

NSX 6.2.5 - 6.2.x HTTP サーバ クローズ バックエンド サーバにディスパッチするときに、クライアントからの要求に HTTP サーバ クローズ xff ヘッダーが追加されます。

no option http-server-close

option http-keep-alive

option http-tunnel

option httpclose

option forceclose