ステートフル アプリケーションの安定性を確保するため、ロード バランサには、関連するすべての接続を同じサーバに転送するパーシステンス機能が実装されています。アプリケーションによるさまざまな種類のニーズに対応できるように、さまざまな種類のパーシステンス機能がサポートされています。
一部のアプリケーションでは、サーバの状態(ショッピング カートなど)が維持されます。これらの状態はクライアント IP アドレスごとに、または HTTP セッション ベースで識別されます。アプリケーションは、同じクライアントや HTTP セッションからの接続を処理する際に、この状態を参照または変更する場合があります。
送信元 IP のパーシステンス プロファイルは、送信元の IP アドレスに基づいてセッションを追跡します。送信元アドレス ベースのパーシステンス が有効になっている仮想サーバへクライアントが接続を要求すると、ロード バランサは、そのクライアントに以前接続したかどうかを確認し、接続したことがあれば、そのクライアントを同じサーバに返します。以前に接続したことがない場合は、ロード バランサがプールのロード バランシング アルゴリズムに基づいてサーバ プール メンバーを選択します。送信元 IP のパーシステンス プロファイルは、レイヤー 4 およびレイヤー 7 の仮想サーバによって使用されます。
ルール パーシステンス、Cookie パーシステンス、サーバ キープアライブがすべて構成されている場合、ロード バランサはルール パーシステンス > Cookie パーシステンス > サーバ キープアライブという優先順位に従います。
- Cookie 挿入:ロード バランサは、クライアントに対するサーバ応答にプール メンバー情報を使用して、独自の Cookie を挿入します(メンバー情報はエンコードされている場合も、されていない場合もあります)。以降の要求で、クライアントは受信した Cookie(NSX Cookie を含む)を転送し、ロード バランサはその情報を使用してプール メンバーのパーシステンスを提供します。プール メンバーに送信されたときに、NSX Cookie はクライアント要求から削除されます。
- Cookie プレフィックス:ロード バランサは、クライアントに対するサーバ応答にプール メンバー情報を追加します(メンバー情報はエンコードされている場合も、されていない場合もあります)。以降の要求で、クライアントは受信した HTTP Cookie(NSX が追加した情報を含む)を転送し、ロード バランサはその情報を使用してプール メンバーのパーシステンスを提供します。プール メンバーに送信されたときに、NSX Cookie のプレフィックスはクライアント要求から削除されます。
- Cookie 書き換え:ロード バランサは、クライアントに対するサーバ応答でサーバの Cookie 値をプール メンバー情報に置き換えます(メンバー情報はエンコードされている場合も、されていない場合もあります)。以降の要求で、クライアントは受信した HTTP Cookie(NSX が追加した情報を含む)を転送し、ロード バランサはその情報を使用してプール メンバーのパーシステンスを提供します。プール メンバーに送信されたときに、クライアント要求の Cookie が元のサーバ Cookie に置き換わります。
汎用のパーシステンス プロファイルは、HTTP 要求の HTTP ヘッダー、Cookie または URL に基づいてパーシステンスをサポートします。このため、セッション ID が URL の一部である場合、アプリケーション セッションのパーシステンスがサポートされます。このプロファイルは、仮想サーバに直接関連付けられていません。要求の転送と応答の書き換えにロード バランサ ルールを構成するときに、このプロファイルを指定します。