セレクタと基本コンテンツグループの構成
hit パラメーターと無効化パラメーターを使用するようにコンテンツグループを構成することもできます。ただし、セレクタを構成することをお勧めします。
セレクタの利点
セレクタの代わりにパラメータを使用する
hit パラメーターと無効化パラメーターを構成できます。たとえば、バグレポートのコンテンツグループに、BugID、Issuer、Assigneeの3つの hit パラメータを設定するとします。リクエストにBugID=456が含まれており、発行者はRohitV、担当者はロバートである場合、Citrix ADCアプライアンスはこれらのパラメーターと値のペアに一致する応答を提供できます。
hit パラメータまたは無効化パラメータとして使用できることに注意してください。
-
URL クエリ
-
ポスト本文
-
クッキーのヘッダー
セレクタの設定
add cache selector \<selectorName\> ( \<rule\> ... )
>add cache selector product_selector "http.req.url.query.value("ProductId")" "http.req.url.query.value("BatchNum")" "http.req.url.query.value("depotLocation")"
> add cache selector batch_selector "http.req.url.query.value("ProductId")" "http.req.url.query.value("BatchId")" "http.req.url.query.value("depotLocation")"
> add cache selector product_id_selector "http.req.url.query.value("ProductId")"
> add cache selector batchnum_selector "http.req.url.query.value("BatchNum")" "http.req.url.query.value("depotLocation")"
> add cache selector batchid_selector "http.req.url.query.value("depotLocation")" "http.req.url.query.value("BatchId")"
コンテンツグループ
-
静的コンテンツグループ。リクエストの URL ステムとホスト名、レスポンスの URL ステムとホスト名との完全一致を検索します。
-
動的コンテンツグループ。特定のパラメーターと値のペア、任意の文字列、または文字列パターンを含むオブジェクトを検索します。動的コンテンツグループは、頻繁に更新されるデータ(バグレポートや株価など)をキャッシュする場合に便利です。
-
ユーザーがバグレポートなどの項目の検索条件を入力し、HTML フォームの \[検索\] ボタンをクリックします。
-
ブラウザは、1 つ以上の HTTP GET 要求を発行します。これらのリクエストには、パラメータ(バグの所有者、バグ ID など)が含まれます。
-
Citrix ADCアプライアンスは要求を受信すると、一致するポリシーが検索され、これらの要求に一致するキャッシュポリシーが見つかると、要求がコンテンツグループに転送されます。
-
コンテンツグループは、セレクターで構成した基準に基づいて、コンテンツグループ内の適切なオブジェクトを探します。
NameField=username and BugID=IDに一致する応答を取得できます。
-
一致するオブジェクトが見つかった場合、Citrix ADCアプライアンスはそれらをユーザーのブラウザに提供し、そこで完全な応答(バグレポートなど)にアセンブルされます。
-
ユーザーがデータを変更します(たとえば、ユーザーがバグレポートを変更し、\[Submit\] ボタンをクリックした場合など)。
-
ブラウザは、このデータを 1 つ以上の HTTP 要求の形式で送信します。たとえば、バグの所有者とバグ ID に関する情報を含む複数の HTTP POST リクエストの形式でバグレポートを送信できます。
-
Citrix ADCアプライアンスは、無効ポリシーに対して要求を照合します。通常、これらのポリシーは HTTP POST メソッドを検出するように設定されます。
-
要求が無効ポリシーと一致する場合、Citrix ADCアプライアンスは、このポリシーに関連付けられているコンテンツグループを検索し、無効化のための構成された条件に一致する応答を期限切れにします。
NameField=username and BugID=IDに一致する応答を見つけることができます。
-
Citrix ADCアプライアンスは、次回これらの応答に対するGET要求を受信すると、オリジンサーバーからリフレッシュされたバージョンを取得し、リフレッシュされた応答をキャッシュし、ユーザーのブラウザーにこれらの応答を提供します。そこで完全なバグレポートが作成されます。
基本コンテンツグループを設定する
add cache contentgroup <name> (-hitSelector <hitSelectorName> -invalSelector <invalidationSelectorName> | -hitParams <hitParamName> -invalParams<invalidationParamName>) -type <type> [-relExpiry <sec> | -relExpiryMilliSec <msec>] [-heurExpiryParam <positiveInteger>]
add cache contentgroup Products_Details –hitSelector product_selector –invalSelector id_selector
add cache contentgroup bugrep -hitParams IssuePage RecordID Template TableId -invalParams RecordID -relExpiry 864000
キャッシュされたオブジェクトを期限切れまたはフラッシュする
-
コンテンツグループの有効期限設定を構成して、オブジェクトを保持するかどうか、および保持期間を決定します。
-
コンテンツグループの無効化ポリシーとアクションを構成します。詳細については、「 キャッシュと無効化のポリシーの設定」を参照してください。
-
コンテンツグループまたはコンテンツグループ内のオブジェクトを手動で期限切れにします。
-
\[手動\]: コンテンツグループ内のすべての応答またはキャッシュ内のすべての応答を手動で無効にします。
-
応答ベース。肯定応答と否定応答の特定の有効期限間隔。応答ベースの有効期限は、Last-Modifiedヘッダーが応答に欠落している場合にのみ考慮されます。
-
ヒューリスティック有効期限。Last-Modifiedヘッダーを持つ応答の場合、ヒューリスティック有効期限は、応答が変更されてからの時間のマウントを指定します(現在の時刻からLast-Modified時間を差し引き、ヒューリスティック有効期限の値を掛けて計算されます)。たとえば、Last-Modified ヘッダーが応答が 2 時間前に更新されたことを示し、ヒューリスティック有効期限設定が 10% の場合、キャッシュされたオブジェクトは 0.2 時間後に期限切れになります。この方法は、頻繁に更新される応答をより頻繁に期限切れにする必要があることを前提としています。
-
絶対または相対。応答が毎日期限切れになる正確な(絶対)時間を指定します。 HH:MM 形式、現地時間、またはGMT。ローカル時刻は、すべてのタイムゾーンで動作しない場合があります。
-
ダウンロード時。\[完全な応答を受信した後に期限切れ\]オプションは、ダウンロード時に応答を期限切れにします。これは、株価など、頻繁に更新される応答に役立ちます。デフォルトでは、このオプションは無効になっています。
-
ピン固定。デフォルトでは、キャッシュがいっぱいになると、Citrix ADCアプライアンスは最も最近使用されていない応答を最初に置き換えます。Citrix ADCアプライアンスは、ピン留めとしてマークされたコンテンツグループにはこの動作を適用しません。
-
コンテンツグループに適用される INVAL アクションを使用してポリシーを設定します。
-
INVAL アクションを使用するポリシーを設定するときに、コンテンツグループの名前を入力します。
有効期限メソッドの適用方法
-
オブジェクトを期限切れにするかどうかを決定するときに、Citrix ADCアプライアンスが応答ヘッダーを評価するかどうかを制御できます。
-
絶対的および相対的な有効期限により、Citrix ADCアプライアンスは応答ヘッダーを無視します(応答内の有効期限情報を上書きします)。
-
ヒューリスティック有効期限の設定と「弱い陽性」と「弱い負」の有効期限(構成ユーティリティで デフォルト 値)により、Citrix ADCアプライアンスは応答ヘッダーを調べます。これらの設定は、次のように連携して機能します。
-
Expires ヘッダーまたは Cache-Control ヘッダーの値は、これらのコンテンツグループ設定よりも優先されます。
-
ExpiresまたはCache-Controlヘッダーがなく、Last-Modifiedヘッダーがある肯定的な応答の場合、Citrix ADCアプライアンスはヒューリスティックの有効期限設定とヘッダー値を比較します。
-
Expires、Cache-Control、またはLast-Modifiedヘッダーがない肯定応答の場合、Citrix ADCアプライアンスは「弱い肯定」値を使用します。
-
ExpiresまたはCache-Controlヘッダーがない否定応答の場合、Citrix ADCアプライアンスは「弱い否定」値を使用します。
-
| 応答タイプ | 有効期限ヘッダータイプ | コンテンツグループの設定 | オブジェクトがキャッシュに残る期間 |
|---|---|---|---|
| Positive | 任意のヘッダー | 他の設定なしでコンテンツを期限切れにする(relExpiry) | Expire ContentAfter 設定の値を使用します。 |
| Positive | 任意のヘッダー | 他の設定なしでコンテンツを期限切れにする(absExpiry) | Expire ContentAt 設定の値から現在の日付を引きます。 |
| Positive | 任意のヘッダー | コンテンツの期限を過ぎる (relExpiry) と、コンテンツの期限を過ぎる (absExpiry) | コンテンツグループ設定には、2 つの値のうち小さい方を使用します。この表の前の行を参照してください。 |
| Positive | Last-Modified(他のヘッダーも含む) | ヒューリスティック(heurExpiry パラメータ)とその他の設定 | 現在の日付からLast-Modified日を減算し、ヒューリスティック有効期限の設定の値で結果を乗算し、100 で除算します。 |
| Positive | Last-Modified(他のヘッダーも含む) | デフォルト(positive)(weakPosRel 有効期限)と他の設定なし | [既定 (positive) 有効期限設定] の値を使用します。 |
| Positive | ExpiresまたはCache-Control: Max-Ageヘッダーが存在する | 最終変更されたヘッダーがない、ヒューリスティック(heurExpiry Param)、デフォルト(正)(weakPosRel Expiry)、またはその両方 | 有効期限または Cache-Control:Max-Age 日付から現在の日付を引きます。 |
| Positive | キャッシングヘッダーなし | デフォルト(positive)(weakPosRel Expiry)およびその他の有効期限設定 | [既定 (positive)] の設定値を使用します。 |
| Positive | キャッシングヘッダーなし | ヒューリスティック(heurExpiry Param)が存在し、デフォルト(正)(weakPosRel Expiry)設定が存在しません。 | Last-Modifiedヘッダーが存在しない場合、応答はキャッシュされないか、すでに期限切れの状態でキャッシュされます。Last-Modified ヘッダーが存在する場合は、ヒューリスティック有効期限の値を使用します。 |
| Negative | 有効期限または Cache-Control:Max-Age |
[コンテンツの期限を過ぎる] (relExpiry)、[期限切れ] (absExpiry)、またはその両方の設定 | Expires ヘッダーの値から現在の日付を減算するか、キャッシュコントロール:Max-Age ヘッダーの値を使用します。 |
| Negative | ExpiresまたはCache-Controlヘッダーがない | [コンテンツの期限を過ぎる] (relExpiry)、[期限切れ] (absExpiry)、またはその両方の設定 | 応答がキャッシュされていないか、Already Expired状態でキャッシュされています。 |
| Negative | 有効期限または Cache-Control:Max-Age |
任意の設定 | 有効期限または Cache-Control:Max-Age 日付から現在の日付を引きます。 |
| Negative | Expires およびCache-Control:Max-Ageヘッダーが存在しない | デフォルト (negativwe) (weakNegRel Expiry) | [既定 (negative)] の設定値を使用します。 |
| Negative | Expires およびCache-Control:Max-Ageヘッダーが存在しない | デフォルト(negative)以外の設定(weakNegRel Expiry) | オブジェクトはキャッシュされていないか、既に期限切れの状態でキャッシュされています。 |
手動の方法でコンテンツグループを期限切れにする
expire cache contentGroup <name>
コンテンツグループの定期的な有効期限を構成する
set cache contentgroup \<name> (-relExpiry|-relExpiryMilliSec|-absExpiry|-absExpiryGMT| -heurExpiryParam|-weakPosRelExpiry|-weakNegRelExpiry| -expireAtLastBye) \<expirationValue>
個々の回答を期限切れにする
ETag やLast-Modifiedヘッダーなど、バリデーターがない応答は再検証できません。その結果、これらの応答をフラッシュすることは、それらの応答を期限切れにする場合と同じ効果があります。
expire cache object -url <URL> -host <hostName> [-port <port>] [-groupName<contentGroupName>] [-httpMethod GET|POST]
expire cache object -locator <positiveInteger>
コンテンツグループ内の応答のフラッシュ
flush cache contentGroup <name> [-query <queryString> | [-selectorValue <selectorExpressionIDList> -host <hostName>]]
-
\[最適化\] > \[統合キャッシュ\] > \[コンテンツグループ\] に移動します。
-
詳細ペインで、次のように応答をフラッシュします。
-
すべてのコンテンツグループ内のすべての回答をフラッシュするには、\[すべて無効化\] をクリックし、すべての回答をフラッシュします。
-
特定のコンテンツグループ内の応答をフラッシュするには、コンテンツグループを選択し、\[無効化\] をクリックして、すべての応答をフラッシュします。
-
flush cache object -locator <positiveInteger> | -url <URL> -host <hostName> [-port <port>] [-groupName <contentGroupName>] [-httpMethod GET|POST]
コンテンツグループの削除
rm cache contentgroup <name>