Citrix ADC

ユーザー定義のルールに基づくパーシステンスの設定

ルールベースのパーシステンスを構成すると、Citrix ADCアプライアンスは、一致するルールの内容に基づいてパーシステンスセッションを作成してから、設定された負荷分散方式で選択されたサービスにリクエストを送信します。その後、ルールに一致するすべての要求を同じサービスに送信します。HTTP、SSL、RADIUS、ANY、TCP、および SSL_TCP タイプのサービスに対して、規則ベースの永続性を設定できます。

ルールベースの永続性には、クラシックまたはデフォルトの構文式が必要です。従来の式を使用してリクエストヘッダーを評価したり、デフォルトの構文式を使用してリクエストヘッダー、リクエスト内の Web フォームデータ、レスポンスヘッダー、またはレスポンス本文を評価したりできます。たとえば、従来の式を使用して、HTTP Host ヘッダーの内容に基づいて永続性を設定できます。また、デフォルトの構文式を使用して、レスポンス Cookie またはカスタムヘッダー内のアプリケーションセッション情報に基づいて永続性を構成することもできます。クラシック構文式とデフォルトの構文式の作成と使用の詳細については、「ポリシーと式」を参照してください。

設定できる式は、ルールベースの永続性を設定するサービスのタイプによって異なります。たとえば、RADIUS 以外のプロトコルでは RADIUS 固有の式を使用できず、ANY タイプ以外のサービスタイプでは TCP オプションベースの式を使用できません。TCP および SSL_TCP サービスタイプでは、TCP/IP プロトコルデータ、レイヤ 2 データ、TCP オプション、および TCP ペイロードを評価する式を使用できます。

注意:TCP 経由で送信される財務情報交換 (「FIX」) プロトコル・データに基づいてルール・ベースの永続性を構成するユース・ケースについては、TCP バイトストリームにおける名前と値のペアに基づく規則ベースの永続性の設定を参照してください。

ルールベースの永続性は、Branch Repeater アプライアンス、Branch Repeater プラグイン、キャッシュサーバー、アプリケーションサーバーなどのエンティティとの永続性を維持するために使用できます。

注意: ANY 仮想サーバーでは、応答に対してルールベースの永続性を設定できません。

ユーザー定義規則に基づいて永続性を設定するには、「規則を必要としないパーシステンスタイプの設定」の説明に従って永続性を設定し、パーシステンスタイプを RULE に設定します。次に、以下の手順を実行します。設定ユーティリティまたは CLI を使用して、ルールベースの永続性を設定できます。

CLI を使用してユーザー定義ルールに基づいて永続性を構成するには

コマンドプロンプトで、次のように入力します。

set lb vserver <vserverName> [-rule <expression>][-resRule <expression>]

例:

set lb vserver vsvr_name –rule http.req.header("cookie").value(0).typecast_nvlist_t('=',';').value("server")

set lb vserver vsvr_name –resrule http.res.header("set-cookie").value(0).typecast_nvlist_t('=',';').value("server")

GUI を使用してユーザー定義ルールに基づいてパーシステンスを構成するには

  1. [トラフィック管理] > [負荷分散] > [仮想サーバー] に移動し、仮想サーバーを開きます。
  2. 「持続性」セクションで、要件を満たすパーシステンスタイプを選択します。仮想サーバーに最も適したパーシステンスタイプは、オプションボタンとして使用できます。特定の仮想サーバーの種類に適用可能なその他のパーシステンスタイプは、「その他」(Other) リストから選択できます。

ローカライズされた画像

NetScaler リリース12.0ビルド56.20より前のバージョンでは、オプションボタンがない単一の永続性ドロップダウンリストですべてのパーシステンスタイプを使用できます。

例:要求ペイロードのクラシック式

次の古典的な式は、文字列「MyBrowser」を含む User-Agent HTTP ヘッダーの存在に基づいて永続性セッションを作成し、このヘッダーと文字列を含む後続のクライアント要求を、最初の要求用に選択されたのと同じサーバーに送信します。

http header User-Agent contains MyBrowser

例:要求ヘッダーのデフォルトの構文式

次のデフォルトの構文式は、前の古典的な式とまったく同じことを行います。

HTTP.REQ.HEADER(“User-Agent”).CONTAINS (“MyBrowser”)

次の式は、「サーバー」クッキーの応答を調べ、そのクッキーを含むすべての要求を、最初の要求で選択されたのと同じサーバーに送信します。

HTTP.RES.HEADER(“SET-COOKIE”).VALUE(0).TYPECAST_NVLIST_T(‘=’,’;’).VALUE(“server”)

ユーザー定義のルールに基づくパーシステンスの設定