Citrix ADC

クッキ,ヘッダ,ポリングの設定

このトピックでは,饼干,HTTPヘッダー,およびオリジンサーバーのポーリングを管理するキャッシュを構成する方法について説明します。これには,キャッシュが文書化された標準から逸脱するデフォルトの動作の変更,キャッシュ可能なコンテンツがキャッシュに保存されない原因となる可能性のあるHTTPヘッダーのオーバーライド,更新されたコンテンツのオリジンを常にポーリングするようにキャッシュを構成することが含まれます。

標準からのキャッシュ動作の分散

デフォルトでは,統合キャッシュは次のrfc標準に準拠しています。

  • rfc2616, " http http /1.1 "
  • RFC 2617“HTTP認証:基本およびダイジェストアクセス認証”に記載されているキャッシュ動作
  • RFC 2965“http状態管理メカニズム”に記載されているキャッシュ動作

組み込みポリシーと默认コンテンツグループ属性により,これらの標準の大部分への準拠が保証されます。

デフォルトの統合キャッシュの動作は,次のように仕様とは異なります。

  • 更改ヘッダのサポトは制限されています。デフォルトでは,不同ヘッダーを含む応答は,圧縮されていない限り,キャッシュ不可能とみなされます。圧縮された応答には,内容编码:gzip、内容编码:缩小,または内容编码:pack200-gzipが含まれ,不同:接受编码ヘッダーが含まれている場合でもキャッシュ可能です。
  • 統合キャッシュは,ヘッダーcache - control: no - cacheおよびcache - control:私人の値を無視します。たとえば,cache - controlを含む応答:no - cache =“set - cookie”応答にcache - control: no - cacheが含まれているかのように扱われます。デフォルトでは,応答はキャッシュされません。
  • 画像(コンテンツタイプ=图像/ *)画像応答にset - cookieまたはset-cookie2ヘッダーが含まれている場合,または画像要求に饼干ヘッダーが含まれている場合でも,は常にキャッシュ可能と見なされます。統合キャッシュは,応答をキャッシュする前に,応答からset - cookieヘッダーとset-cookie2ヘッダーを削除します。これはrfc 2965から発散します。RFC準拠の動作は,次のように設定できます。
添加缓存策略rfc_compliant_images_policy -rule "http.res.header.set-cookie2。存在| | http.res.header.set-cookie。-action NOCACHE绑定全局rfc_compliant - images_policy -priority 100 -type REQ_OVERRIDE 
  • リクエスト内の次のcache - controlヘッダーは,RFC準拠のキャッシュにオリジンサーバーからのキャッシュされた応答をリロードさせます。

cache - control:信息= 0

cache - control: no - cache

サビス拒否攻撃を防ぐために,この動作はデフォルトではありません。

  • デフォルトでは,キャッシングモジュールは,応答ヘッダーの状態が別の場合を除いて,応答をキャッシュ可能と見なします。この動作をrfc2616に準拠させるには,すべてのコンテングルプで-weakPosRelExpiry-weakNegResExpiryを0に設定します。

レスポンスからクッキを削除する

クッキはユ。删除响应饼干パラメタは,応答をキャッシュする前にset - cookie和Set-Cookie2ヘッダを削除します。デフォルトでは,コンテングルプの删除响应饼干オプションは,set - cookieまたはSet-Cookie2ヘッダを含む応答のキャッシュを防ぎます。

注:イメージがキャッシュされている場合,組み込みの動作は,コンテンツグループの構成に関係なく,キャッシュする前にset - cookieおよびSet-Cookie2ヘッダを削除することです。

画像など,埋め込まれたレスポンスを格納するすべてのコンテングルプに対して,デフォルト删除响应饼干を受け入れることをお勧めします。

コマンドラ总部总部ン总部总部ンタ总部フェ总部总部スを使用してコンテングルプの删除响应饼干を構成するには,次の手順を実行します。

コマンドプロンプトで入力します。

set cache contentgroup -removeCookies YES

Citrix ADC GUIを使用して,コンテングルプの応答Cookieの削除を構成する

  1. 最適化] > [統合キャッシュ] > [コンテングルプに移動し,コンテングルプを選択します。
  2. その他]タブの[設定グルプで,[レスポンスCookieを削除する]オプションを選択します。

応答時にhttpヘッダを挿入する

統合キャッシュは,キャッシュ要求の結果として生じる応答にhttpヘッダを挿入できます。Citrix ADCアプライアンスは、キャッシュミスに起因する応答のヘッダーを変更しません。

次の表は,応答に挿入できるヘッダの説明です。

ヘッダ 仕様
年齢 応答がオリジンサバで生成された時点から計算された,応答の経過時間を秒単位で示します。デフォルトでは,キャッシュは,キャッシュから提供されるすべてのレスポンスに対して年龄ヘッダーを挿入します。
通过 要求または応答の開始ポ邮箱ントと終了ポ邮箱ント間のプロトコルと受信者を一覧表示します。Citrix ADCアプライアンスは、キャッシュから配信されるすべての応答にViaヘッダーを挿入します。挿入されたヘッダーのデフォルト値は「NS-CACHE-9.2:Citrix ADC IPアドレスの最後のオクテット」です。詳細は、「キャッシュ用のグローバル属性の構成」を参照してください。
标签 キャッシュは,Last-Modifiedヘッダと标签ヘッダを使用して応答の検証をサポトし,応答が古くなっているかどうかを判断します。キャッシュは,応答をキャッシュし,オリジンサ,バ,が独自の标签ヘッダを挿入していない場合にのみ,応答に标签を挿入します。标签値は任意の一意の番号です。応答の标签値は,オリジンサーバーから更新されると変更されますが,サーバーが304(オブジェクトは更新されない)応答を送信する場合は同じままです。動的コンテンツはキャッシュできないと見なされるため,オリジンサーバーは通常動的コンテンツのバリデーターを生成しません。この動作は上書きできます。标签ヘッダを挿入すると,キャッシュは完全な応答を提供しないことが許可されます。代わりに,ユーザーエージェントは,統合キャッシュによって最初に送信された動的応答をキャッシュする必要があります。ユザエジェントに応答をキャッシュするように強制するには,标签ヘッダーを挿入し,オリジンが提供するcache - controlヘッダーを置き換えるように統合キャッシュを構成します。
cache - control Citrix ADCアプライアンスは,通常,オリジンサーバーからの応答のキャッシュ可能性ヘッダーを変更しません。オリジンサーバーがキャッシュ不可能とラベル付けされたレスポンスを送信する場合,Citrix ADCアプライアンスがレスポンスをキャッシュしていても,クライアントはレスポンスをキャッシュ不可能として扱います。ユーザーエージェントで動的応答をキャッシュするには,オリジンサーバーのcache - controlヘッダーを置き換えることができます。これは,ユザエジェントやその他の介在キャッシュにのみ適用されます。統合キャッシュには影響しません。
ヘッダ 仕様
年齢 応答がオリジンサバで生成された時点から計算された,応答の経過時間を秒単位で示します。デフォルトでは,キャッシュは,キャッシュから提供されるすべてのレスポンスに対して年龄ヘッダーを挿入します。
通过 要求または応答の開始ポ邮箱ントと終了ポ邮箱ント間のプロトコルと受信者を一覧表示します。Citrix ADCアプライアンスは、キャッシュから配信されるすべての応答にViaヘッダーを挿入します。挿入されたヘッダーのデフォルト値は「NS-CACHE-9.2:Citrix ADC IPアドレスの最後のオクテット」です。詳細は、「キャッシュ用のグローバル属性の構成」を参照してください。
标签 キャッシュは,last - modifiedヘッダーと标签ヘッダーを使用して応答の検証をサポートし,応答が古くなっているかどうかを判断します。キャッシュは,応答をキャッシュし,オリジンサ,バ,が独自の标签ヘッダを挿入していない場合にのみ,応答に标签を挿入します。标签値は任意の一意の番号です。応答の标签値は,オリジンサーバーから更新されると変更されますが,サーバーが304(オブジェクトは更新されない)応答を送信する場合は同じままです。動的コンテンツはキャッシュできないと見なされるため,オリジンサーバーは通常動的コンテンツのバリデーターを生成しません。この動作は上書きできます。标签ヘッダを挿入すると,キャッシュは完全な応答を提供しないことが許可されます。代わりに,ユーザーエージェントは,統合キャッシュによって最初に送信された動的応答をキャッシュする必要があります。ユザエジェントに応答をキャッシュするように強制するには,标签ヘッダーを挿入し,オリジンが提供するcache - controlヘッダーを置き換えるように統合キャッシュを構成します。
cache - control Citrix ADCアプライアンスは,通常,オリジンサーバーからの応答のキャッシュ可能性ヘッダーを変更しません。オリジンサーバーがキャッシュ不可能とラベル付けされたレスポンスを送信する場合,Citrix ADCアプライアンスがレスポンスをキャッシュしていても,クライアントはレスポンスをキャッシュ不可能として扱います。ユーザーエージェントで動的応答をキャッシュするには,オリジンサーバーのcache - controlヘッダーを置き換えることができます。これは,ユザエジェントやその他の介在キャッシュにのみ適用されます。統合キャッシュには影響しません。

年齢,経由,またはタグヘッダ,を挿入します

次の手順では、年龄ヘッダー,通过ヘッダー,ETagヘッダーを挿入する方法について説明します。

Citrix ADCコマンドインターフェイスを使用して,年龄,通过,またはEtagヘッダーを挿入します

コマンドプロンプトで入力します。

set cache contentgroup -insertVia YES -insertAge YES -insertETag YES

Citrix ADC GUIを使用して,Age, Via,またはEtagヘッダ,を構成します

  1. 最適化] > [統合キャッシュ] > [コンテングルプ]に移動し,コンテングルプを選択します
  2. その他タブの[httpヘッダの挿入]グルプで,必要に応じて[経由]、[経過時間,または[ETagオプションを選択します。
  3. その他のヘッダタ。キャッシュのメ和ン設定で通过値を構成します。

    httpヘッダ挿入を構成する

キャッシュコントロルヘッダを挿入する

統合キャッシュが,オリジンサーバーが挿入したcache - controlヘッダーを置き換えると,到期ヘッダーも置き換えられます。新しい到期ヘッダーには,過去の有効期限が含まれています。これにより,HTTP / 1.0クライアントとキャッシュ(cache - controlヘッダーを認識しない)がコンテンツをキャッシュしないようにします。

Citrix ADCコマンドereplicationンタフェereplicationスを使用してキャッシュ制御ヘッダを挿入します

コマンドプロンプトで入力します。

设置缓存内容组 -cacheControl

Citrix ADC GUIを使用してキャッシュ制御ヘッダを挿入します

  1. 最適化] > [統合キャッシュ] > [コンテングルプ]に移動し,
    1. 有効期限方法]タブをクリックし,ヒューリスティックおよびデフォルトの有効期限設定をクリアし,[次の後にコンテンツを期限切れにする]テキストボックスで関連する値を設定します。
    2. その他“タブをクリックし,挿入するヘッダを“キャッシュ制御”テキストボックスに入力します。または、[Configure] をクリックして、キャッシュされたレスポンスのキャッシュ制御ディレクティブを設定します。

リクエストのcache-controlヘッダpragmaヘッダ

デフォルトでは,キャッシュモジュールはcache - controlおよび编译指示ヘッダーを処理します。キャッシュ制御ヘッダ内の次のトクンは,rfc 2616で説明されているように処理されます。

  • 信息
  • max-stale
  • only-if-cached
  • no - cache

リクエスト内の杂注:no - cacheヘッダーは,cache - control: no - cacheヘッダーと同じように扱われます。

cache - controlおよび编译指示ヘッダーを無視するようにキャッシュ・モジュールを構成する場合,cache - control: no - cacheヘッダーを含む要求により,Citrix ADCアプライアンスはオリジナル・サーバーからレスポンスを取得しますが,キャッシュされたレスポンスは更新されません。キャッシュモジュールがcache - controlおよび编译指示ヘッダーを処理する場合,キャッシュされた応答がリフレッシュされます。

次の表は,これらのヘッダーのさまざまな設定と,[ブラウザのリロード要求を無視]設定の影響をまとめたものです。

缓存控制およびPragmaヘッダを無視する設定 ブラウザのリロド要求を無視する設定 出力
はい [はい]または[いいえ] cache - control: no - cacheディレクティブを含め,cache - controlおよび编译指示ヘッダーを無視します。
いいえ はい cache - control: no - cacheヘッダーはキャッシュミスを生成しますが,すでにキャッシュにある応答はリフレッシュされません。
いいえ いいえ cache - control: no - cacheヘッダーを含む要求は,キャッシュミスを引き起こし,格納された応答がリフレッシュされます。

コマンドラインインターフェイスを使用してリクエストのキャッシュコントロールヘッダーとプラグマヘッダーを無視するには

コマンドプロンプトで入力します。

set cache contentgroup -ignoreReqCachingHdrs YES

コマンドラopenstackンopenstackンタopenstackスを使用してブラウザのリロ

コマンドプロンプトで入力します。

set cache contentgroup -ignoreReloadReq NO .

注:デフォルトでは,-ignoreReloadReqパラメタはYESに設定されています。

GUIを使用して,リクエスト内のCache-ControlヘッダPragmaヘッダ

  1. 最適化] > [統合キャッシュ] > [コンテングルプに移動し,コンテングルプを選択します。
  2. その他]タブの[設定グルプで,[要求のキャッシュコントロルおよびプラグマヘッダを無視する]オプションを選択します。

    Cache-ControlヘッダとPragmaヘッダを構成します

Cache-Controlヘッダを無視するポリシの例:

次の例では,応答のcache - controlヘッダーに関係なく,内容类型:图像/ *を含む応答をキャッシュするように,要求時間の上書きポリシーを設定します。

图片/*を使用してすべての応答をキャッシュするように要求時間上書きポリシを設定するには

[すべて無効化]オプションを使用してキャッシュをフラッシュします。

新しいキャッシュポリシを構成し,ポリシ。詳細は,“統合キャッシュでのポリシの構成”を参照してください。

ポリシーが使用するコンテンツグループが,“要求内のキャッシュコントロールヘッダーとプラグマヘッダーの無視”の説明に従って,cache - controlヘッダーを無視するように構成されていることを確認します。

ポリシをリクエスト時間上書きポリシバンクにバンドします。

詳細にいては,”統合キャッシュポリシのグロバルバンドトピックを参照してください。

リクエストを受信するたびにオリジンサバをポリングします

Citrix ADCアプライアンスは,保存された応答を提供する前に,常にオリジンサーバーを参照するように構成できます。これは,毎回ポリング(宠物)として知られています。Citrix ADCアプライアンスがオリジナル・サーバーを参照し、PET応答の有効期限が切れていない場合、オリジナル・サーバーからの完全な応答によってキャッシュされたコンテンツは上書きされません。このプロパティは、クライアント固有のコンテンツを提供するときに便利です。

宠物応答の有効期限が切れた後,Citrix ADCアプライアンスは最初の完全応答がオリジンサーバーから到着したときに宠物応答を更新します。

毎回ポリング(pet)機能は次のように動作します。

タグまたはlast - modifiedヘッダーの形式のバリデーターを持つキャッシュされた応答の場合,応答の有効期限が切れると,自動的に宠物としてマークされ,キャッシュされます。

コンテングルプの宠物を設定できます。

コンテンツグループを宠物として設定すると,コンテンツグループ内のすべての応答に宠物とマークされます。宠物コンテングルプは,バリデタを持たないレスポンスを保存できます。自動的に宠物とマクされた回答は,常に期限切れになります。宠物コンテンツグループに属する応答は,コンテンツグループの構成方法に基づいて,遅延後に期限切れになる場合があります。

ポリングでは,次の2種類の要求が影響を受けます。

  • 条件付きリクエスト:クライアントは,それが持っている応答が最新のコピーであることを確認するために,条件付きリクエストを発行します。キャッシュされた宠物応答に対するユーザーエージェント要求は,常に条件付き要求に変換され,オリジンサーバーに送信されます。条件付きリクエストには,if - modified - sinceヘッダーまたは具有ヘッダーにバリデータがあります。If-Modified-以来,ヘッダは,最終変更ヘッダからの時間が含まれています。如果不匹配ヘッダには,応答の标记ヘッダ値が含まれます。クライアントの応答のコピーが新しい場合,オリジンサーバーは304 Not Modifiedと応答します。コピが古い場合,条件付き応答では,応答全体を含む200 okが生成されます。
  • 非条件付きリクエスト:無条件リクエストは,応答全体を含む200okのみを生成できます。
オリジン·サバ·レスポンス 操作(アクション)
完全な回答を送信 オリジンサバは,応答をそのままクラアントに送信します。キャッシュされたレスポンスの有効期限が切れている場合は,リフレッシュされます。
304変更されていません 304年応答の次のヘッダー値は,キャッシュされた応答とマージされ,キャッシュされた応答がクライアントに提供されます。日付,有効期限,年齢,キャッシュ制御ヘッダ,Max-Age,およびS-Maxageト,クン
401無許可,400不正な要求,405メソッドは許可されていません。406は受け入れられません。407プロキシ認証が必要です。 オリジンの応答はそのままクラ邮箱アントに提供されます。キャッシュされた応答は変更されません。
その他のエラ応答(404 Not Foundなど) オリジンの応答はそのままクラ邮箱アントに提供されます。キャッシュされた応答が削除されます。

注:每次投票パラメタは,影響を受ける応答を保存不可として扱います。

コマンドラopenstackンopenstackンタopenstackスを使用して毎回ポ

コマンドプロンプトで入力します。

add cache contentgroup -pollEveryTime YES

guiを使用してポリングする

  1. 最適化] > [統合キャッシュ] > [コンテングルプに移動し,コンテングルプを選択します。
  2. その他]タブの[設定]グループで,[毎回ポーリング(キャッシュされたコンテンツをリクエストごとにオリジンで検証)]オプションを選択します。

    コンテングルプのポリング構成

宠物およびクラおよびクラアント固有のコンテン

宠物機能を使用すると,クラ。たとえば,複数の言語でコンテンツを提供するWebサイトは,接收语言要求ヘッダーを調べて,提供するコンテンツの言語を選択します。英語が主要言語である多言語Webサイトの場合,すべての英語コンテンツを宠物コンテンツグループにキャッシュできます。これにより,すべてのリクエストがオリジンサバ,に送信され,レスポンスの言語が決定されます。応答が英語で,コンテンツが変更されていない場合,オリジンサーバーは304 Not Modifiedをキャッシュに提供できます。

次の例は、宠物コンテンツグループに英語の応答をキャッシュし,キャッシュ内の英語の応答を識別する名前付き式を設定し,このコンテンツグループと名前付き式を使用するポリシーを設定するコマンドを示しています。太字は強調のために使用されます:

add cache contentgroup EnglishLanguageGroup -pollEveryTime YES add expression containsENExpression -rule "http.res.header(\\"Content-Language\\").contains(\\"en\\")" add cache policy englishPolicy -rule containsENExpression -action cache -storeInGroup EnglishLanguageGroup bind cache policy englishPolicy -priority 100 - prededefrules NO 

宠物および認証,承認,監査

Outlook Webアクセス(OWA)は動的に生成されたコンテンツの宠物の利点の良い例です。すべてのメル応答(*.;Emlオブジェクト)には,宠物応答として保存できるETagバリデタがあります。

メールレスポンスのすべてのリクエストは,レスポンスがキャッシュされていても,オリジンサーバーに送信されます。オリジンサバは,リクエスタが認証および認可されているかどうかを決定します。また,応答がオリジンサバに存在することを確認します。すべての結果が肯定的である場合,オリジンサーバーは304 Not Modified応答を送信します。