ADC

統合キャッシュのデフォルト設定

NetScaler統合キャッシュ機能には、デフォルトコンテンツグループのデフォルト設定と初期設定を含む組み込みポリシーが用意されています。このセクションの情報は、組み込みポリシーとデフォルトコンテンツグループのパラメータを定義します。

既定のキャッシュポリシー

統合キャッシュにはポリシーが組み込まれています。NetScalerアプライアンスは、次のセクションで説明するように、特定の順序でポリシーを評価します。

これらの組み込みポリシーを、要求時オーバーライドまたは応答時間オーバーライドポリシーバンクにバインドされたユーザー定義ポリシーでオーバーライドできます。

注: リリース 9.0 より前のポリシーを設定し、ポリシーをバインドするときに-precedeDefrules パラメータを指定した場合、それらのポリシーは移行時に自動的にオーバーライドタイムのバインドポイントに割り当てられます。

デフォルトポリシーを表示

組み込みポリシー名はアンダースコア (_) で始まります。組み込みポリシーは、show cache policy コマンドを使用してコマンドラインと管理コンソールから表示できます。

デフォルトのリクエストポリシー

新しいポリシーを設定してリクエスト時間オーバーライド処理ポイントにバインドすることで、以下の組み込みリクエスト時間ポリシーをオーバーライドできます。以下のポリシーでは、MAY_NOCACHE アクションは、応答時にユーザー設定または組み込みの CACHE ディレクティブがある場合にのみトランザクションをキャッシュするように規定していることに注意してください。

以下のポリシーは _ReqBuiltInDefaults ポリシーラベルにバインドされています。それらは優先度順にリストされています。

GET 以外のメソッドを使用するリクエストの応答をキャッシュしないでください。

ポリシー名は _NongEtreq です。次に、ポリシールールを示します。

!HTTP.REQ.METHOD.eq(GET)

If-Match または If-Unmodified-Since を含むヘッダー値を持つリクエストに NOCACHE アクションを設定します。

ポリシー名は _AdvancedConditionalReq です。次に、ポリシールールを示します。

HTTP.REQ.HEADER("If-Match").EXISTS || HTTP.REQ.HEADER("If-Unmodified-Since").EXISTS

クッキー、承認、プロキシ認証、またはNTLMまたはネゴシエートヘッダーを含むリクエストのヘッダー値を持つリクエストに MAY_NOCACHE アクションを設定します。

ポリシー名は _PersonalizedRq です。次に、ポリシールールを示します。

HTTP.REQ.HEADER("Cookie").EXISTS || HTTP.REQ.HEADER("Authorization").EXISTS || HTTP.REQ.HEADER("Proxy-Authorization").EXISTS || HTTP.REQ.IS_NTLM_OR_NEGOTIATE

デフォルト・レスポンス・ポリシー

新しいポリシーを設定して応答時間オーバーライド処理ポイントにバインドすることで、次のデフォルトの応答時間ポリシーをオーバーライドできます。

以下のポリシーは _ResBuiltInDeFaults ポリシーラベルにバインドされ、記載されている順序で評価されます。

  1. HTTP 応答のタイプが 200、304、307、203 の場合、またはタイプが 400 から 499 または 300 から 302 の間でない限り、HTTP 応答をキャッシュしないでください。

    ポリシー名は _uncacheableStatusResです。次に、ポリシールールを示します。

    !((HTTP.RES.STATUS.EQ(200)) || (HTTP.RES.STATUS.EQ(304)) || (HTTP.RES.STATUS.BETWEEN(400,499)) || (HTTP.RES.STATUS.BETWEEN(300, 302)) || (HTTP.RES.STATUS.EQ(307))|| (HTTP.RES.STATUS.EQ(203)))

  2. HTTP レスポンスに Accept-Encoding 以外の値の Vary ヘッダーがある場合は、キャッシュしないでください。

    圧縮モジュールは Vary: Accept_Encoding ヘッダーを挿入します。このエクスプレッションの名前は _uncacheableVaryResです。次に、ポリシールールを示します。

    ((HTTP.RES.HEADER("Vary").EXISTS) && ((HTTP.RES.HEADER("Vary").INSTANCE(1).LENGTH > 0) || (!HTTP.RES.HEADER("Vary").STRIP_END\_WS.SET_TEXT_MODE(IGNORECASE).eq("Accept-Encoding"))))

  3. Cache-Control ヘッダー値が No-Cache、No-Store、Private の場合、または Cache-Control ヘッダーが有効でない場合は、レスポンスをキャッシュしないでください。

    ポリシー名は _uncacheableCacheControlResです。次に、ポリシールールを示します。

    ((HTTP.RES.CACHE\_CONTROL.IS\_PRIVATE) || (HTTP.RES.CACHE\_CONTROL.IS\_NO\_CACHE) || (HTTP.RES.CACHE\_CONTROL.IS\_NO\_STORE) || (HTTP.RES.CACHE\_CONTROL.IS\_INVALID))

  4. Cache-Control ヘッダーに Public、Must-Revalidate、Proxy Revalidate、Max-Age、S-Maxage のいずれかの値が含まれている場合、応答をキャッシュします。

    ポリシー名は _CacheableCacheControllResです。次に、ポリシールールを示します。

    ((HTTP.RES.CACHE_CONTROL.IS_PUBLIC) || (HTTP.RES.CACHE_CONTROL.IS_MAX_AGE) || (HTTP.RES.CACHE_CONTROL.IS_MUST_REVALIDATE) || (HTTP.RES.CACHE_CONTROL.IS_PROXY_REVALIDATE) || (HTTP.RES.CACHE_CONTROL.IS_S_MAXAGE))

  5. Pragma ヘッダーを含む応答はキャッシュしないでください。

    ポリシーの名前は _UncacheablePragmaresです。次に、ポリシールールを示します。

    HTTP.RES.HEADER("Pragma").EXISTS

  6. Expires ヘッダーを含むレスポンスをキャッシュします。

    ポリシーの名前は _cacheableExpiryResです。次に、ポリシールールを示します。

    HTTP.RES.HEADER("Expires").EXISTS

  7. レスポンスに Image という値の Content-Type ヘッダーが含まれている場合は、ヘッダー内の Cookie をすべて削除してキャッシュします。

    ポリシーの名前は _ImageResです。次に、ポリシールールを示します。

    HTTP.RES.HEADER("Content-Type").SET_TEXT_MODE(IGNORECASE).STARTSWITH("image/")

    このポリシーと連携するように次のコンテンツグループを設定できます。

    add cache contentgroup nocookie -group -removeCookies YES

  8. Set-Cookie ヘッダーを含む応答をキャッシュしないでください。

    ポリシーの名前は _ PersonalizedResです。次に、ポリシールールを示します。

    HTTP.RES.HEADER(“Set-Cookie”).EXISTS

デフォルトポリシーの制限

以下の組み込みリクエスト時間ポリシーをユーザー定義ポリシーで上書きすることはできません。

これらのポリシーは、優先度順にリストされています。

  1. 対応する HTTP リクエストに GET または POST メソッドがない場合は、応答をキャッシュしないでください。
  2. HTTP リクエスト URL の長さとホスト名の合計が 1744 バイトを超える場合は、リクエストに対する応答をキャッシュしないでください。
  3. If-Match ヘッダーを含むリクエストの応答をキャッシュしないでください。
  4. If-Unmodified-Since ヘッダーを含むリクエストをキャッシュしないでください。

注: これは If-Modified-Since ヘッダーとは異なります。

  1. サーバーが有効期限ヘッダーを設定していない場合は、応答をキャッシュしないでください。

以下の組み込み応答時間ポリシーを上書きすることはできません。これらのポリシーは、記載されている順に評価されます。

  1. HTTP 応答ステータスコードが 201、202、204、205、206 の応答をキャッシュしないでください。
  2. ステータスコード 403、404、410 を除き、HTTP 応答ステータスコードが 4xx の応答はキャッシュしないでください。
  3. レスポンスタイプが FIN 終了の場合、またはレスポンスに Content-Length または Transfer-Encoding: Chunked のいずれかの属性がない場合は、レスポンスをキャッシュしないでください。
  4. キャッシュモジュールが Cache-Control ヘッダーを解析できない場合は、応答をキャッシュしないでください。

既定のコンテンツグループの初期設定

統合キャッシュを初めて有効にすると、Citrix ADCアプライアンスは、デフォルトのコンテンツグループという名前の定義済みコンテンツグループを提供します。詳細については、「 既定のコンテンツグループ設定テーブル 」を参照してください。

統合キャッシュのデフォルト設定