キャッシュと無効化のポリシーを構成する
-
キャッシングアクション。CACHE アクションに関連付けるポリシーは、応答をキャッシュに保存し、キャッシュから処理します。
-
無効化アクション。INVAL アクションに関連付けるポリシーは、キャッシュされた応答をただちに期限切れにし、オリジンサーバーから更新します。Webベースのアプリケーションの場合、無効化ポリシーはPOSTリクエストを評価することがよくあります。
-
「キャッシュしない」アクション。NOCACHE アクションに関連付けるポリシーは、オブジェクトをキャッシュに保存しません。
-
アクションを暫定的にキャッシュします。MAYCACHEまたはMAYNOCACHEアクションに関連付けるポリシーは、より多くのポリシー評価の結果によって異なります。
LOCKリクエストの受信時にキャッシュされたオブジェクトを無効にすることができます。無効化ポリシーの場合のみ、式http.req.method.eq(“lock”)を使用してLOCKをメソッドとして指定できます。NetScaler アプライアンスはこのメソッド名を文字列として認識するため、 GETおよびPOST要求のポリシーとは異なり、LOCKメソッドを引用符で囲む必要があります。
統合キャッシュポリシーに関連付けるアクション
| 操作(アクション) | 仕様 |
|---|---|
| CACHE | 応答の有効期限が切れていない場合は、キャッシュからの応答を提供します。応答を元のサーバーからフェッチする必要がある場合、NetScaler アプライアンスは応答を提供する前に応答をキャッシュします。頻繁に更新され、アクセスされるデータもキャッシュできます。たとえば、株価は頻繁に更新されますが、複数のユーザーにすばやく提供できるようにキャッシュすることができます。必要に応じて、キャッシュされたデータは、ダウンロードされた直後に更新できます。CACHE アクションは、組み込みポリシーによって上書きできます。 |
| NOCACHE | 常にオリジンサーバーからの応答をフェッチし、応答を非保存としてマークします。通常、機密データまたはパーソナライズされたデータに対して NOCACHE ポリシーを構成します。 |
| MAY_CACHE | この設定は要求時間ポリシーで使用され、応答時間ポリシーの評価を保留して、応答をコンテンツグループに保存できるようにします。以下が可能です:1。一致する応答時間ポリシーに CACHE アクションがあり、コンテンツグループが指定されていない場合、組み込みポリシーがこのポリシーを上書きしない限り、応答は Default グループに格納されます。一致する応答時間ポリシーに CACHE アクションがあり、要求時間ポリシーと同じコンテンツグループが指定されている場合、組み込みポリシーがこのポリシーを上書きしない限り、応答は名前付きコンテンツグループに保存されます。3. 一致する応答時間ポリシーに CACHE アクションがあり、要求時間ポリシーとは異なるコンテンツグループが指定されている場合は、NOCACHE アクションが適用されます。4. 一致する応答時間ポリシーに NOCACHE アクションがある場合は、NOCACHE アクションを実行します。5. 一致する応答時間ポリシーがない場合、組み込みポリシーがこのポリシーを上書きしない限り、CACHE アクションが適用されます。 |
| MAY_NOCACHE | 要求時間ポリシーの場合、この設定は応答のキャッシュを暫定的に防止します。応答時に、次のいずれかのアクションが実行されます。-要求に一致する応答時間ポリシーがない場合、最後のアクションはNOCACHEです。-一致する応答時間ポリシーに CACHE アクションが含まれている場合、組み込みポリシーがこのポリシーを上書きしない限り、最終的なアクションは CACHE です。-一致する応答時間ポリシーに NOCACHE アクションが含まれている場合、最後のアクションは NOCACHE です。-一致する応答時間ポリシーに CACHE アクションがあり、コンテンツグループが指定されていない場合、組み込みポリシーがこのポリシーを上書きしない限り、最終的なアクションは Default コンテンツグループの応答を CACHE することです。 |
| INVAL | キャッシュされた応答を期限切れにします。ポリシーとコンテンツグループの構成方法に応じて、1 つ以上のコンテンツグループ内のすべての応答が期限切れになるか、またはコンテンツグループ内の選択したオブジェクトが期限切れになります。注意:INVAL アクションは、リクエスト時間ポリシーでのみ指定できます。 |
ポリシーのバインドポイント
-
仮想サーバ。仮想サーバにバインドするポリシーは、「ポリシー評価の順序」で説明されているように、グローバルオーバーライドポリシーの後およびグローバルデフォルトポリシーの前に処理されます。ポリシーを仮想サーバーにバインドするときは、ポリシーを要求時または応答時の処理にバインドします。
-
アドホックポリシーラベル。ポリシーラベルは、ポリシーバンクに割り当てられた名前です。統合キャッシュには、グローバルラベルに加えて、次の 2 つの組み込みカスタムポリシーラベルがあります。
-
_reqBuiltinDefaults. このポリシーラベルは、デフォルトでは、要求時のデフォルトポリシーバンクから呼び出されます。
-
_resBuiltinDefaults. このポリシーラベルは、デフォルトでは、応答時間のデフォルトポリシーバンクから呼び出されます。
-
ポリシー評価の順序
-
リクエスト時のオーバーライド。要求が要求時オーバーライドポリシーに一致する場合、デフォルトでは要求時ポリシーの評価が終了し、NetScalerアプライアンスは一致するポリシーに関連付けられているアクションを保存します。
-
要求時の負荷分散仮想サーバ。すべての要求時間上書きポリシーの評価後にポリシー評価を完了できない場合、NetScaler アプライアンスは、負荷分散仮想サーバーにバインドされた要求時間ポリシーを処理します。リクエストがこれらのポリシーのいずれかに一致する場合、評価は終了し、NetScalerアプライアンスは一致するポリシーに関連付けられているアクションを保存します。
-
要求時のコンテンツスイッチング仮想サーバー。このバインドポイントにバインドされているポリシーは、負荷分散仮想サーバーにバインドされている要求時ポリシーの後に評価されます。
-
リクエスト時のデフォルト。すべての要求時の仮想サーバー固有のポリシーが評価された後、ポリシーの評価を完了できない場合、NetScalerアプライアンスは要求時のデフォルトポリシーを処理します。要求が要求時のデフォルトポリシーと一致する場合、デフォルトでは要求時ポリシーの評価が終了し、NetScalerアプライアンスは一致するポリシーに関連付けられているアクションを保存します。
-
応答時間のオーバーライド。要求時間上書きポリシー評価に似ています。
-
応答時間の負荷分散仮想サーバ。要求時の仮想サーバポリシーの評価に似ています。
-
応答時間のコンテンツスイッチング仮想サーバー。要求時の仮想サーバポリシーの評価に似ています。
-
応答時間のデフォルト。要求時のデフォルトポリシー評価に似ています。
NOCACHEアクションと Cookie を使用したリクエストに対するMAY_NOCACHEアクションを返すため、リクエスト時のオーバーライド評価時に呼び出す必要があります。 パラメータ化されたコンテンツグループを指す要求時ポリシーに、 MAY_CACHEまたはMAY_NOCACHEアクションを関連付けます。応答時間ポリシーによって、トランザクションがキャッシュに格納されるかどうかが決まります。
統合キャッシュのポリシーを構成する
-
ルール:HTTP リクエストまたはレスポンスを評価する論理式。
-
アクション:ポリシーとアクションを関連付けて、ポリシー規則に一致するリクエストまたはレスポンスの処理を決定します。
add cache policy <policyName> -rule <expression> -actionCACHE|MAY_CACHE|NOCACHE|MAY_NOCACHE [-storeInGroup <contentGroupName>] [-undefAction NOCACHE|RESET] > add cache policy image_cache -rule "http.req.url.contains(\"jpg\") || http.req.url.contains(\"jpeg\")" -action CACHE -storeingroup myImages_group -undefaction NOCACHE
> add cache policy bugReportPolicy -rule "http.req.url.query.contains(\"IssuePage\")" -action CACHE -storeInGroup bugReportGroup
> add cache policy my_form_policy -rule "http.req.header(\"Host\")contains(\"my.company.com\") && http.req.method.eq(\"GET\") && http.req.url.query.contains(\"v=7\")" -action CACHE -storeInGroup my_form_event
> add cache policy viewproducts_policy –rule "http.req.url.contains(\"viewproducts.aspx\")" –action CACHE -storeInGroup Product_Details
add cache policy <policyName> -rule <expression> -action INVAL [-invalObjects "<contentGroupName1>[,<selectorName1>"]. . .]] | [-invalGroup <contentGroupName1>[, <contentGroupName2>. . .]] [-undefAction NOCACHE|RESET]> add cache policy invalidation_events_policy -rule "http.req.header("Host")contains("my.company.com") && http.req.method.eq("GET") && http.req.url.query.contains("v=8") -action INVAL -invalObjects my_form_event -undefaction NOCACHE> add cache policy inval_all -rule "http.req.method.eq("POST") && http.req.url.contains("jpeg")" -action INVAL -invalGroups myImages_group myApps_group PDF_group> add cache policy bugReportInvalidationPolicy -rule "http.req.url.query.contains("TransitionForm")" -action INVAL -invalObjects bugReport`
`> add cache policy editproducts_policy –rule "http.req.url.contains("editproducts.aspx")" –action INVAL -invalObjects "Product_Details,batchnum_sel" "Products_In_Depots,batchid_sel"
統合キャッシュポリシーのグローバルバインド
bind cache global <policy> -priority <positiveInteger> [-typeREQ_OVERRIDE|REQ_DEFAULT|RES_OVERRIDE|RES_DEFAULT] [-gotoPriorityExpression <expression>] [-invoke <labelType> <labelName>]> bind cache global myCachePolicy -priority 100 -type req_default
> bind cache global myCache Policy 200
統合キャッシュポリシーを仮想サーバーにバインドする
bind lb vserver <name>@ -policyName <policyName> -priority <positiveInteger> -type(REQUEST|RESPONSE)bind cs vserver <name>@ -policyName <policyName> -priority <positiveInteger> -type(REQUEST|RESPONSE)
-
CS仮想サーバー-トラフィック 管理に移動します > コンテンツの切り替え > 仮想サーバー、仮想サーバーを選択し、関連するキャッシュポリシーをバインドします。
-
LB仮想サーバー - Traffic Management > Load Balancing > Virtual Servers,に移動して仮想サーバーを選択し、関連キャッシュポリシーをバインドします。
ファイルの圧縮および非圧縮バージョンをキャッシュする方法
Accept-Encoding:compression 形式のヘッダーがリクエストで送信されます。クライアントによって受け入れられる圧縮タイプは、キャッシュされたオブジェクトの圧縮タイプと一致する必要があります。たとえば、 Accept-Encoding:deflate ヘッダーのあるリクエストに応答して cached.gzip ファイルを提供することはできません。
add cache selector uncompressed_response_selector http.req.url "http.req.header(\"Host\")"
add cache contentGroup uncompressed_group -hitSelector uncompressed_responst_selector -invalSelector uncomp_resp_sel
add cache policy cache_uncompressed -rule "HTTP.REQ.URL.CONTAINS(\"xyz\") && !HTTP.REQ.HEADER(\"Accept-Encoding\").EXISTS" -action CACHE -storeInGroup uncompressed_group
bind cache global cache_uncompressed -priority 100 -gotoPriorityExpression END -type REQ_OVERRIDE
add cache selector compressed_response_selector HTTP.REQ.URL "HTTP.REQ.HEADER(\"Host\")" "HTTP.REQ.HEADER(\"Accept-Encoding\")"
add cache contentGroup compressed_group -hitSelector compressed_response_selector
add cache policy cache_compressed -rule "HTTP.REQ.URL.CONTAINS(\"xyz\") && HTTP.REQ.HEADER(\"Accept-Encoding\").EXISTS" -action CACHE -storeInGroup compressed_group
bind cache global cache_compressed -priority 200 -gotoPriorityExpression END -type REQ_OVERRIDE
キャッシュ用のポリシーバンクの構成
| 属性 | Specifies |
|---|---|
| Name | ポリシーの名前。ポリシーを評価せずに別のポリシーバンクを呼び出す場合は、キーワード NOPOLICY。ポリシーバンクでは NOPOLICY を複数回指定できますが、名前付きポリシーは一度しか指定できません。 |
| 優先度 | 整数。整数値が小さいほど、優先度が高くなります。 |
| Goto式 | 次に評価するポリシーまたはポリシーバンクを決定します。次のいずれかの値を指定できます。1. NEXT:次に高い優先度を持つポリシーに移動します。2. END:評価を停止します。3. USE_INVOCATION_RESULT: このエントリが別のポリシー・バンクを呼び出す場合に適用されます。呼び出されたバンクの最後の Gotoの値が END の場合、評価は停止します。最後のGotoがEND以外のものである場合、現在のポリシーバンクはNEXTを実行します。4. 正の数:評価される次のポリシーの優先度番号。5. 数値式:評価される次のポリシーの優先順位番号を生成する式。Gotoは、ポリシーバンクでのみ進めることができます。Goto 式を省略することは、END を指定することと同じです。 |
| 呼び出しタイプ | ポリシーバンクタイプを指定します。値は次のいずれかになります-1。仮想サーバーの要求:仮想サーバーに関連付けられている要求時ポリシーを呼び出します。 2.2。応答仮想サーバー:仮想サーバーに関連付けられている応答時間ポリシーを呼び出します。 3.3。ポリシーラベル:バンクのポリシーラベルで識別される、別のポリシーバンクを起動します。 |
| 呼び出し名 | [呼び出しタイプ]に指定した値に応じて、仮想サーバまたはポリシー・ラベルの名前。 |
_reqBuiltInDefaults:このポリシーラベルは、リクエスト時のデフォルトのバインドポイントから呼び出されます。 _resBuiltInDefaults:このポリシーラベルは、応答時のデフォルトのバインドポイントから呼び出されます。
bind cache policylabel <labelName> -policname<policyName> -priority<priority> [-gotoPriorityExpression <gotopriorityExpression>] [-invoke <labelType> <labelName>]
-
\[最適化\] > \[統合キャッシュ\] に移動し、\[キャッシュポリシーマネージャ\] をクリックし、関連するバインドポイント (\[グローバル上書き\] または \[デフォルトグローバル\]) と接続タイプを指定して、このバインドポイントにバインドされているポリシーのリストを表示します。
-
ポリシーを評価せずにポリシー・ラベルを呼び出す場合は、\[NOPOLICY\] をクリックします。
bind lb vserver <name>@ -policyName <policyName>|<NOPOLICY-CACHE> -priority<positiveInteger> -gotoPriorityExpression <expression> -type REQUEST|RESPONSE -invoke<labelType> <labelName>bind cs vserver <name> -policyName <policyName>|<NOPOLICY-CACHE> -priority<positiveInteger> -gotoPriorityExpression <expression> -type REQUEST|RESPONSE -invoke<labelType> <labelName>
-
\[トラフィック管理\] > \[負荷分散/コンテンツスイッチング\] > \[仮想サーバー\] に移動し、仮想サーバーを選択して \[ポリシー\] をクリックします。
-
このバンクに既存のエントリを設定する場合は、この手順をスキップします。このポリシーバンクに新しいポリシーを追加する場合、または「ダミー」NOPOLICY エントリを使用する場合は、\[追加\] をクリックして、次のいずれかの操作を行います。
-
新しいポリシーを設定するには、「 統合キャッシュでのポリシーの設定」の説明に従って、\[キャッシュ\] をクリックし、新しいポリシーを設定します。
-
ポリシールールを処理せずにポリシーバンクを呼び出すには、
NOPOLICY-CACHEオプションを選択します。
-
統合キャッシュでのポリシーラベルの設定
\_reqBuiltinDefaultsおよび\_resBuiltinDefaultsからのみ呼び出すことができます。ポリシーラベルは、一度だけ呼び出すことができるポリシーとは異なり、何度でも呼び出すことができます。
NOPOLICY「ダミー」ポリシーを使用して、別のポリシーバンクからポリシーラベルを呼び出すことができます。NOPOLICYエントリは、ルールを処理しないプレースホルダです。
-
add cache policylabel <labelName> -evaluates (REQ|RES) -
show cache policylabel <labelName>
統合キャッシュポリシーとポリシーラベルのバインド解除と削除
unbind cache global <policy>
(unbind lb vserver|unbind cs vserver) <vserverName> -policyName <policyName> -type(REQUEST|RESPONSE)
rm cache policy <policyName>
-
\[ 最適化 \] > \[ 統合キャッシュ\] に移動し、\[ キャッシュポリシーマネージャ\] をクリックし、関連するバインドポイント (負荷分散仮想サーバーまたはコンテンツスイッチング仮想サーバー) と接続タイプを指定して、この仮想サーバーにバインドされたキャッシュポリシーのリストを表示します。
-
ポリシーの \[呼び出し\] 列で、エントリをクリアします。