キャッシングに関するページ・ルールの使用
ページ・ルールを使用することにより、リダイレクトの作成、キャッシング動作の微調整、サービスの有効化と無効化など、ページの URL に基づいたさまざまなアクションを実行できます。
ページ・ルールは、以下の書式にマッチするURLパターンに適用される:
<scheme>://<hostname><:port>/<path>
以下に例を示します。
https://www.example.com:80/image.png
scheme
構成要素と port
構成要素はオプションです。 scheme
構成要素が省略された場合は、形式として http://
プロトコルと https://
プロトコルが受け入れられます。 port
が指定されなかった場合、ルールはすべてのポートと一致します。 ルール・パターンの中で *
記号を使用して一連の類似パターンに一致させることにより、基本的なワイルドカード・マッチングを行えます。
ページ・ルールの考慮事項
- どのリクエストに対しても、1つのページルールだけが有効です。
- ページ・ルールは上から下へ優先される。 URL がルールに一致すると、そのルールのみが適用されます。 つまり、ページ・ルールが既に要求でトリガーされた場合、URL パターンにも一致する後続のルールは有効になりません。
- 通常は、最も具体的なルールから最も具体的でないルールの順に並べることをお勧めします。
- ページ・ルールは無効にできます。この場合、これらは何の処理も行いません。 ただし、リストには引き続き表示されるので、編集することはできます。 **「有効」トグルを「オフ」**に設定すると、最初は「無効」に設定されたページ・ルールが作成されます。
転送 (URL リダイレクト)
HTTP リダイレクトの 301 または 302 を使用して、ある URL を別の URL にリダイレクトします。 ワイルドカードが一致した URL のいずれのセクションの内容も、$X
構文を使用して参照できます。 X
は、パターン内のグロブのインデックスを示します。つまり、$1
は最初のワイルドカードが一致したものに置き換えられ、$2
は 2 番目のワイルドカードが一致したものに置き換えられます。
例えば、次のようなルールを設定したとする:
- URL 一致 =
*.example.com/*
- 有効 = オン
- 設定 = 転送 URL
- = 301 永続リダイレクトとして
http://example.com/$2/
に設定
この場合、www.example.com/stuff/things
に対する要求は http://example.com/stuff/things
にリダイレクトされます。
ドメインがそれ自体を宛先として指すリダイレクトは作成しないよう気を付けてください。 このような誤りがあると、無限のリダイレクト・エラーになる可能性があります。その場合は、影響を受ける URL を解決できません。
HTTPS へのリダイレクト
訪問者にHTTPSを使用するようにリダイレクトしたい場合は、代わりにルールの動作を「常にHTTPSを使用する」設定にします。
カスタム・キャッシングの設定
ページルールパターンにマッチするURLに対して、標準キャッシュレベルのいずれかを使用してキャッシュ動作を設定する。 キャッシュ・レベル すべてをキャッシュするに設定すると、たとえそれがデフォルトの静的ファイル・タイプでなくても、あらゆるコンテンツがキャッシュされる。 **「キャッシュ・レベル (Cache Level)」を「バイパス (Bypass)」**に設定すると、その URL のキャッシングが行われなくなります。
ページ・ルールを使用してキャッシュ・レベルを指定する場合、エッジ・キャッシュTTL を設定することができ、CISがキャッシュ内のファイルを保持する期間を制御します。
Browser Cache TTL は、クライアント・ブラウザによってキャッシュされたリソースが有効であり続ける期間を制御します。 ブラウザがリソースを再度リクエストし、TTLが失効していない場合、ブラウザは HTTP 304 (Not Modified)
レスポンスを受け取る。 30 分から 1 年までの範囲で TTL を設定できます。
デフォルトのキャッシング動作のすべてが厳密に RFC に準拠しているというわけではありません。 ページルールによる Originキャッシュ制御の設定は、主に再バリデーションに関して、RFCにより忠実であろうとする新しいキャッシュルールのセットを使用します。 例えば、max-age=0
の場合のデフォルト動作では、まったくキャッシュされません。これに対して、**「起点キャッシュ制御 (Origin Cache Control)」**を設定すると、キャッシュされて常に再検証されます。
次の例では、/images
フォルダーにあるすべてをキャッシュするようページ・ルールが設定されます。 キャッシュされたリソースは、ユーザーのブラウザでは30分で失効し、IBM CISのデータセンターでは1日後に失効する。
- URL 一致 =
*.example.com/images/*
- 有効 = オン
- ルールの動作の設定:
設定 | 設定: |
---|---|
キャッシュ・レベル | すべてをキャッシュ |
ブラウザー・キャッシュ TTL | 30 分間 |
エッジ・キャッシュ TTL | 1 日 |
不整合コンテンツの提供では、サーバーがダウンしていても、キャッシュからページを提供します。 訪問者は限定されたバージョンのサイトを参照できます。オフライン表示モードになっていることを示すメッセージが表示されます。
この機能は、HTTP 状況 503 を戻します。 サーバーがオンライン状態に戻ると、CIS 訪問者の表示モードが通常のブラウズにシームレスに切り替わります。
要求対象のページがキャッシュに入っていない場合は、その要求対象ページがオフラインになっているという趣旨のエラー・ページが訪問者に表示されます。 すべてをキャッシュ・ページ・ルールが有効になっていて、有効期限の時刻の設定がキャッシング頻度よりも小さい値になっていると、対応する間隔で不整合コンテンツの提供がパージされます。