Citrix ADC

キャッシュリダイレクションポリシーを構成する

キャッシュリダイレクションポリシーには、1 つ以上の式 ( 規則とも呼ばれます) が含まれます。各式は、クライアント要求がポリシーと比較されたときに評価される条件を表します。

キャッシュリダイレクションポリシーのアクションは明示的に設定しません。デフォルトでは、Citrix ADCアプライアンスは、ポリシーに一致するすべての要求をキャッシュ不可能と見なし、キャッシュではなくオリジンサーバーに要求を送信します。

クラシックポリシー形式に基づくキャッシュリダイレクションポリシーは、 クラシックキャッシュリダイレクションポリシーと呼ばれます。このような各ポリシーには名前があり、論理演算子を使用して組み合わせた古典的な式または古典的な式のセットが含まれます。

従来のキャッシュリダイレクションポリシーの場合は、ポリシーのアクションを明示的に設定しません。デフォルトでは、Citrix ADCアプライアンスは、ポリシーに一致するすべての要求をキャッシュ不可能と見なし、キャッシュではなくオリジンサーバーに要求を送信します。

新しいポリシー形式に基づくキャッシュリダイレクトポリシーは、 高度なリダイレクトポリシーと呼ばれます。このようなポリシーには、名前があり、既定の構文式、または論理演算子を使用して組み合わされた一連の既定の構文式、および次の組み込みアクションが含まれます。

  • CACHE
  • ORIGIN

クラシック式およびデフォルトの構文式の詳細については、「ポリシーと式」を参照してください。

CLI を使用したキャッシュリダイレクションポリシーの追加

コマンドプロンプトで次のコマンドを入力して、キャッシュリダイレクションポリシーを追加し、構成を確認します。

-  add cr policy <policyName> \*\*-rule\*\* <expression>
-  show cr policy [<policyName>]

例:

単純な式を持つポリシー:

> add cr policy Policy-CRD-1 -rule "REQ.HTTP.URL != /\*.jpeg"
 Done
> show cr policy Policy-CRD-1
         Cache-By-Pass RULE: REQ.HTTP.URL != '/\*.jpeg'   Policy:Policy-CRD-1
 Done

複合式を持つポリシー:

> add cr policy Policy-CRD-2 -rule "REQ.HTTP.METHOD == POST && (REQ.HTTP.URL == /\*.cgi || REQ.HTTP.URL != /\*.gif)"
 Done
> show cr policy Policy-CRD-2
         Cache-By-Pass RULE: REQ.HTTP.METHOD == POST && (REQ.HTTP.URL == '/\*.cgi' || REQ.HTTP.URL != '/\*.gif')   Policy:Policy-CRD-2
 Done

ヘッダーを評価するポリシー:

> add cr policy Policy-CRD-3 -rule "REQ.HTTP.HEADER If-Modified-Since EXISTS"
 Done
> show cr policy Policy-CRD-3
         Cache-By-Pass RULE: REQ.HTTP.HEADER If-Modified-Since EXISTS    Policy:Policy-CRD-3
 Done

CLI を使用したデフォルトの構文キャッシュリダイレクションポリシーの追加

コマンドプロンプトで次のコマンドを入力して、キャッシュリダイレクションポリシーを追加し、構成を確認します。

-  add cr policy <policyName> \*\*-rule\*\* <expression> [-action<string>] [-logAction<string>]
-  show cr policy [<policyName>]

例:

単純な式を持つポリシー:

> add cr policy crpol1 -rule !(HTTP.REQ.URL.ENDSWITH(".jpeg”)) -action origin
 Done
> show cr policy crpoll
         Policy: crpol1 Rule: !(HTTP.REQ.URL.ENDSWITH(".jpeg")) Action: ORIGIN
 Done

複合式を持つポリシー:

> add cr policy crpol11 -rule "http.req.method.eq(post) && (HTTP.REQ.URL.ENDSWITH(".gif") || HTTP.REQ.URL.ENDSWITH(".cgi"))"  -action cache
 Done
> show cr policy crpol11
         Policy: crpol11    Rule: http.req.method.eq(post) && (HTTP.REQ.URL.ENDSWITH(".gif") || HTTP.REQ.URL.ENDSWITH(".cgi"))  Action: CACHE
 Done

ヘッダーを評価するポリシー:

> add cr policy crpol12 -rule http.req.header("If-Modified-Since").exists -action origin
 Done
> show cr policy crpol12
         Policy: crpol12    Rule: http.req.header("If-Modified-Since").exists   Action: ORIGIN
 Done

CLI を使用してキャッシュリダイレクションポリシーを変更または削除する

  • キャッシュリダイレクションポリシーを変更するには、set cr policy コマンドを使用します。このコマンドは add cr policy コマンドに似ていますが、既存のポリシーの名前を入力する点が異なります。
  • ポリシーを削除するには、<name> 引数だけを受け付けるrm cr policy コマンドを使用します。ポリシーが仮想サーバにバインドされている場合は、ポリシーを削除する前に、ポリシーをバインド解除する必要があります。

キャッシュリダイレクションポリシーのバインド解除の詳細については、「キャッシュリダイレクト仮想サーバーからポリシーをバインド解除する」を参照してください。

GUI を使用して単純な式を使用してキャッシュリダイレクションポリシーを構成する

  1. [トラフィック管理] > [キャッシュリダイレクト] > [ポリシー] に移動します。

  2. 詳細ウィンドウで、[追加] をクリックします。

  3. [キャッシュリダイレクトポリシーの作成] ダイアログボックスの [名前*] テキストボックスにポリシーの名前を入力し、[式] 領域で [追加] をクリックします。

  4. 単純な式を設定するには、式を入力します。次に、URL 内の.jpeg 拡張子をチェックする式の例を示します。

    • 式タイプ-General
    • フロータイプ-REQ
    • プロトコル-HTTP
    • 修飾子-URL
    • 演算子-! =
    • -/.jpeg

    次の例の単純な式は、リクエスト内の If-Modified-Since ヘッダーをチェックします。

    • 式タイプ-General
    • フロータイプ-REQ
    • プロトコル-HTTP
    • Qualifier -HEADER
    • オペレータ-EXISTS
    • ヘッダー名-If-Modified-Since
  5. 式の入力が完了したら、[OK] または [作成] をクリックし、[閉じる] をクリックします。

GUI を使用して複合式を使用してキャッシュリダイレクションポリシーを構成する

  1. [トラフィック管理] > [キャッシュリダイレクト] > [ポリシー] に移動します。

  2. 詳細ウィンドウで、[追加] をクリックします。

  3. [Name] テキストボックスに、ポリシーの名前を入力します。

    名前は、文字、数字、またはアンダースコア記号で始まり、1 ~ 127 の文字、数字、ハイフン (-)、ピリオド (.)、ポンド (#)、スペース ()、アットマーク (@)、等号 (=)、アンダースコア (_) の記号で構成されます。このポリシーが検出するために作成されたコンテンツの種類を他のユーザーにとってわかりやすい名前を選択してください。

  4. 作成する複合エクスプレッションのタイプを選択します。選択肢は次のとおりです:

    • [任意の式に一致]: ポリシーでは、1 つ以上の個別の式がトラフィックに一致する場合に、トラフィックが照合されます。

    • [すべての式に一致]: ポリシーでは、個々の式がトラフィックと一致する場合にのみ、トラフィックが照合されます。

    • 表形式の式。[式] リストを 3 つの列で構成された表形式に切り替えます。右端の列に、次のいずれかの演算子を配置します。

      • AND[ && ]演算子は、ポリシーを一致させるために、リクエストが現在の式と次の式の両方に一致する必要があることを要求します。
      • OR[   ]演算子は、ポリシーに一致させるために、リクエストが現在の式、次の式、またはその両方に一致する必要があります。リクエストがどちらの式にも一致しない場合にのみ、ポリシーと一致しません。

      既存の式を選択し、次のいずれかの演算子をクリックして、ネストされたサブグループ内の式をグループ化することもできます。

      • BEGIN SUBGROUP[+ ( ] 演算子。選択した式でネストされたサブグループを開始するようにCitrix ADCアプライアンスに指示します。(式からこの演算子を削除するには、-(.) をクリックします。
      • END SUBGROUP[+ ) ] 演算子。選択した式で現在のネストされたサブグループを終了するようにCitrix ADCアプライアンスに指示します。(式からこの演算子を削除するには、[-] をクリックします)。
    • 高度なフリーフォーム。エクスプレッションエディタ (Expressions Editor) を完全にオフにし、エクスプレッションリストをテキスト領域に変換して、複合エクスプレッションを入力できます。これは、ポリシー式を作成するための最も強力で難しい方法であり、Citrix ADCクラシック式言語に精通している方のみに推奨されます。

      高度な自由形式テキスト領域でのクラシックエクスプレッションの作成の詳細については、「クラシックポリシーおよび式の設定」を参照してください。

      注意: アドバンスフリーフォーム式編集モードに切り替えると、他のモードに戻すことはできません。このエクスプレッション編集モードを使用することが確実でない限り、選択しないでください。

  5. [任意の式と一致]、[すべての式と一致]、または [表形式の式] を選択した場合は、[追加] をクリックして [式の追加] ダイアログボックスを表示します。

    キャッシュリダイレクションポリシーでは、式タイプを [General] のままにしておいてください。

  6. [Flow Type] ドロップダウンリストで、式のフロータイプを選択します。

    フロータイプによって、ポリシーが着信接続と発信接続のどちらを調べるかが決まります。次の 2 つの選択肢があります。

    • REQ. 着信接続または要求を調べるように Citrix ADC アプライアンスを構成します。
    • RES. 発信接続または応答を検査するようにアプライアンスを設定します。
  7. [Protocol] ドロップダウンリストで、式のプロトコルを選択します。

    プロトコルは、要求または応答でポリシーが検査する情報の種類を決定します。前のドロップダウンリストで [REQ] と [RES] のどちらを選択したかに応じて、次の 4 つすべて、または 3 つだけを選択できます。

    • HTTP. HTTP ヘッダーを検査するようにアプライアンスを設定します。
    • SSL. SSL クライアント証明書を検査するようにアプライアンスを設定します。前のドロップダウンリストで [REQ (requests)] を選択した場合にのみ使用できます。
    • TCP. TCP ヘッダーを検査するようにアプライアンスを設定します。
    • 知的財産権です。送信元または宛先 IP アドレスを検査するようにアプライアンスを設定します。
  8. 「修飾子」(Qualifier) ドロップダウンリストから式の修飾子を選択します。

    [Qualifier] ドロップダウンリストの内容は、選択したプロトコルによって異なります。次の表に、各プロトコルで使用可能な選択肢を示します。

    表1. 各プロトコルで使用できるキャッシュリダイレクションポリシー修飾子

    プロトコル 修飾子 説明
    HTTP METHOD リクエストで使用される HTTP メソッド。
    - URL URL ヘッダーの内容。
    - URLTOKENS HTTP ヘッダー内の URL トークン。
    - バージョン 接続の HTTP バージョン。
    - HEADER HTTP 要求のヘッダー部分。
    - URLLEN URL ヘッダーの内容の長さ。
    - URLQUERY URL ヘッダーの内容の一部を照会します。
    - URLQUERYLEN URL ヘッダーのクエリ部分の長さ。
    SSL CLIENT.CERT SSLクライアント証明書全体。
    - CLIENT.CERT.SUBJECT クライアント証明書のサブジェクトフィールドの内容。
    - CLIENT.CERT.ISSUER クライアント証明書の発行者。
    - CLIENT.CERT.SIGALGO クライアント証明書で使用される署名アルゴリズム。
    - CLIENT.CERT.VERSION クライアント証明書のバージョン。
    - CLIENT.CERT.VALIDFROM クライアント証明書が有効な日付。(開始日)
    - CLIENT.CERT.VALIDTO クライアント証明書が無効になる日付。(終了日)
    - CLIENT.CERT.SERIALNUMBER クライアント証明書のシリアル番号。
    - CLIENT.CIPHER.TYPE クライアント証明書で使用される暗号化方式。
    - CLIENT.CIPHER.BITS 暗号化キーの有効ビット数。
    - CLIENT.SSL.VERSION クライアント証明書の SSL バージョン。
    TCP SOURCEPORT TCP 接続の送信元ポート。
    - DESTPORT TCP 接続の宛先ポート。
    - MSS TCP 接続の最大セグメントサイズ(MSS)。
    IP SOURCEIP 接続の送信元 IP アドレス。
    - DESTIP 接続の宛先 IP アドレス。
  9. 「演算子」(Operator) ドロップダウンリストから式の演算子を選択します。

    選択内容は、前の手順で選択した修飾子によって異なります。このドロップダウンリストに表示できる演算子の完全なリストは次のとおりです。

    • == . 次のテキスト文字列と完全に一致します。
    • != . 次の文字列と一致しません。
    • . 次の整数より大きい。

    • CONTAINS . 次のテキスト文字列が含まれます。
    • CONTENTS . 指定されたヘッダー、URL、または URL クエリの内容。
    • EXISTS . 指定されたヘッダーまたはクエリが存在します。
    • NOTCONTAINS . 次のテキスト文字列は含まれません。
    • NOTEXISTS . 指定されたヘッダーまたはクエリは存在しません。

    特定のホストに送信されたリクエストに対してこのポリシーを動作させる場合は、デフォルトの「等号 (==)」記号のままにしておきます。

  10. 「値」(Value) テキストボックスが表示されている場合は、テキストボックスに適切な文字列または数値を入力します。

    たとえば、このポリシーでホスト shopping.example.com に送信されるリクエストを選択する場合は、[Value] テキストボックスにその文字列を入力します。

  11. 修飾子として「HEADER」を選択した場合は、「ヘッダー名」テキスト・ボックスに目的のヘッダーを入力します。

  12. [OK] をクリックして、式を [式] リストに追加します。

  13. 手順 4 ~ 11 を繰り返して、追加の式を作成します。

  14. [閉じる] をクリックして [式の追加] ダイアログボックスを閉じ、[キャッシュリダイレクトポリシーの作成] ダイアログボックスに戻ります。