Set Cache Rules

最終更新日:2024-07-01 11:46:50

CDNetworks CDNプラットフォームでは、エッジサーバー上でウェブサイトのコンテンツに対するキャッシュルールをカスタマイズできます。さまざまなファイルタイプ、リクエストURL、およびその他のパラメータに基づいてキャッシュ期間や他の戦略を設定し、CDNプラットフォーム上で望むキャッシュ動作を実現できます。さらに、あなたのウェブサイトがCDNetworks CDNプラットフォームを介して加速および配信されるとき、プラットフォームはいくつかのデフォルトのキャッシュルールを適用します。カスタムルールが定義されていない場合、オリジンサーバーからのコンテンツはCDNサーバー上でこれらのデフォルトのキャッシュルールに従います。

CDNetworks CDNプラットフォームは、オリジンサーバーのレスポンス構成およびユーザーリクエストの内容に基づいてさまざまなキャッシュ戦略およびデフォルトキャッシュ期間を使用します。

レスポンスヘッダーまたはリクエストヘッダーに基づくデフォルトキャッシュルール

  • オリジンサーバーのレスポンスヘッダーに Cache-Control:no-store,no-cache,must-revalidate,post-check=0,pre-check=0 および Pragma:no-cache などのno-cacheを示すパラメータが含まれている場合、またはリクエストに Authorization ヘッダーが含まれ、レスポンスに Cache-Control:public がない場合、CDNサーバーはデフォルトでこのコンテンツをキャッシュしません。
  • オリジンサーバーのレスポンスヘッダーに前述のno-cacheパラメータが含まれていない場合、またはレスポンスに Cache-Control:public を含む Authorization ヘッダーが含まれている場合、キャッシングはプラットフォームのデフォルトキャッシュ戦略および期間またはカスタムキャッシュルールに従います(特定のファイルタイプはCDNサーバーでキャッシュしないように構成されている場合があります)。

特定の条件に基づくデフォルトキャッシュ期間

リクエストの範囲/タイプ ファイルタイプ/プロトコル デフォルトキャッシュ戦略/期間
クエリ文字列を保持するリクエスト php, aspx, asp, jsp, do, dwr, cgi, fcgi, action, ashx, axd, json キャッシュなし
クエリ文字列を保持するリクエスト mp4, ts, f4v, f4vcrc7z, apk, wdf, cab, dhp, exe, flv, gz, ipa, iso, mpk, MPQ, pbcv, pxl, qnp, r00, rar, xy, xy2, zip, CAB 30日
クエリ文字列を保持するリクエスト shtml, html, htm, js 12時間
クエリ文字列を保持するリクエスト gif, swf, png, bmp 24時間
クエリ文字列を無視するリクエスト cgi 10分
すべてのリクエスト mp3, wma 12-24時間
すべてのリクエスト wmv 24時間
すべてのリクエスト FTPプロトコル 24-168時間
すべてのリクエスト ゴーファープロトコル 0-24時間
すべてのリクエスト その他のファイルタイプ/プロトコル 24時間

これらのデフォルトキャッシュルールをカスタマイズおよび変更する方法については、このチュートリアルをご覧ください。


キャッシュルールの設定方法

  1. CDNetworksコンソール にログインし、適切な製品を選択します。

  2. Configuration に移動し、設定したいドメインを見つけ、上部の Edit Configuration またはドメイン右側の Edit ボタンをクリックします [Feature Upgrade] Advanced Access Control

  3. 設定変更ページに入り、Cache Optimization の下の Customized Caching を見つけ、Add ボタンをクリックします。

  4. ルール編集ページで、次の設定オプションを必要に応じて追加できます。

Effective Range

CDNetworks CDNプラットフォームは、カスタムキャッシュルールの有効範囲に次のオプションを提供します:

オプション 説明
すべてのリクエスト 関連するドメインに対して行われるすべてのリクエストがこのルールに適用されます。
ホームページのみ このルールはルートディレクトリ内のリクエストにのみ適用されます。例:http://domain/またはhttps://domain/
指定されたファイルタイプ 指定されたファイルタイプのリクエストに適用されます。リストされたものから選択するか、このフィールドでファイルタイプをカスタマイズできます。複数のファイルタイプをセミコロンで区切ってください。例:ace;aac
指定されたURI このルールに対して特定のURIを設定できます。Exact MatchingまたはIgnore the Parameter Matchingをサポートします。複数のURIは改行で区切ります。
Exact Matching:ユーザーのリクエストURIが設定されたURIと完全に一致する場合にこのルールが適用されます。
Ignore the Parameter Matching:クエリ文字列を持つURIがリクエストされた場合、クエリ文字列のパラメータは無視されます。クエスチョンマークの前の部分のみが設定されたURIと一致し、このリクエストはこのキャッシュルールに適用されます。
入力するURIにはhttp://またはhttps://を含めず、URI部分のみを設定します。例:完全なURLがhttps://domain/browse/index.htmlの場合、設定するのは/browse/index.htmlのみです。
指定されたディレクトリ 指定されたディレクトリに向けられたすべてのリクエストにこのルールが適用されます。ディレクトリは/で始まり/で終わり、文字、数字、および特定の特殊記号(アンダースコア、ハイフン、パーセント記号、ドット)で構成されます。例:/file/1%1/http://domain/file/1%1/ディレクトリおよびその中のすべてのファイルにこのルールが適用されることを示します。
複数のディレクトリを改行で区切る必要があります。
URL正規表現 正規表現を直接入力することも選択できます。/で始める必要はありません。プラットフォームは自動的にURLの前に^https?://[^/]/を付加します。例:.*.jpg$は、このルールに関連するすべてのドメインのJPGファイルのリクエストがこのポリシーに一致することを示します。

上記のリストからカスタムキャッシュルールの有効範囲を選択するほか、Advanced Range Settingsでさらに構成を行うことができます。これは設定したEffective Rangeと組み合わせて、AND関係の下でキャッシュルールの実際の有効範囲を形成します。Advanced Range Settingsでは、次のオプションを提供します:

パラメータ 説明
UAまたは例外UA 正規表現をサポートし、スペースとTABは \s に変換されます。例: ^Mozilla/4.0$ は、このUAヘッダーを持つリクエストにルールを適用するかどうかを示します。
複数のUAを同時に設定でき、各UAは別の行に配置されます。
例外URL(正規表現) この構成項目では、特定のリクエストURLをキャッシュルールの適用から除外できます。正規表現の記入ルールは上記のURL Regular Expression構成項目と同じです。

Cache Duration
定義したEffect Rangeに一致するリクエストに対して、CDNetworks CDNプラットフォーム上のCDNサーバーでキャッシュ期間をカスタマイズできます。現在、次の3つのキャッシュ期間関連の戦略を設定できます:

パラメータ 説明
キャッシュ このオプションの固定キャッシュ期間を示します。ウェブサイトのファイルが安定した頻度で更新される場合、固定キャッシュ期間を設定してCDNヒット率を最適化し、オリジンへのトラフィックを削減することを検討してください。
オリジンキャッシュルールに従う ウェブサイトのファイルにExpiresまたはCache-Controlなどのキャッシュ期間関連のパラメータが設定されている場合、CDNサーバーはオリジンで設定されたキャッシュ期間に従います。
これらのパラメータが設定されていない場合でも、ここでキャッシュ期間を設定することで、オリジンサーバーからのコンテンツがここで設定された期間に従ってキャッシュされるようにします。
キャッシュしない ウェブサイトのファイルがリアルタイムで更新される必要がある場合は、Do Not Cacheを構成します。CDNエッジサーバーへのすべてのユーザーリクエストはオリジンからコンテンツをフェッチしてユーザーに応答し、CDNエッジサーバーにキャッシュしません。

現在サポートされるキャッシュ期間の時間単位はseconds, minutes, hours, daysであり、デフォルトはhoursです。

Cache(固定キャッシュ期間)またはFollow Origin Cache Rulesを選択する場合、Advanced Settingsを選択して、オリジンのレスポンスヘッダーおよびクライアントのリロードリクエストに基づいてキャッシュ動作をカスタマイズでき、プラットフォーム上でいくつかのデフォルト設定がある場合があります。

パラメータ 説明
オリジンのno-cacheヘッダーを無視する このオプションのデフォルト値はNoです。詳細については、このドキュメントの最初の紹介を参照してください。
Yesを選択すると、オリジンレスポンスヘッダーのすべてのno-cache関連パラメータ(例: Cache-Control: no-cache)が無視され、現在定義されたキャッシュルールが直接適用されます。
Authorizationヘッダーを無視する このオプションのデフォルト値はNoです。詳細については、このドキュメントの最初の紹介を参照してください。
Yesを選択すると、オリジンレスポンスヘッダーにCache-Control: publicがない場合でも、リクエストにAuthorizationヘッダーが含まれている場合でも、現在定義されたキャッシュルールが適用されます。
クライアントリロードを無視する クライアントがreloadリクエストを送信する際の処理ルールを設定します。キャッシュ期間内にCDNサーバーにキャッシュされたファイルがクライアントに直接返されるようにクライアントリロードリクエストを無視するか、if-modified-sinceに変換するかをカスタマイズできます。これは、CDNエッジサーバー上のファイルの最終変更時間がクライアントのLast-Modified時間より新しい場合、CDNエッジサーバー上のキャッシュファイルがクライアントに返され、そうでない場合は304 Not Modifiedステータスが返されることを意味します。

Ignore Case Sensitivity
Yesを選択すると、上記で指定したEffective Rangeが大文字小文字を区別せず、文字の大文字小文字の違いのみを持つ2つのリクエストが設定したルールに一致します。例えば、http://domain/a.jpgを1時間キャッシュするように設定した場合、http://domain/a.jpgおよびhttp://domain/A.jpgの両方がCDNエッジサーバー上で1時間キャッシュされます。
逆に、Noを選択した場合、Effective Rangeの設定と一致するリクエストの大文字小文字の違いは無視されず、設定されたEffective Rangeと正確に一致するリクエストのみがCDNエッジサーバーにキャッシュされます。
この設定のデフォルトはYesです。

Priority
Priorityフィールドでは、このルールの優先順位レベルを指定できます。ユーザーのリクエストに基づいて、システムは設定したルールを照合します。複数のルールが適用される場合、優先順位が高いルールが最初に適用されます。

Addボタンをクリックして詳細設定ページに入る以外にも、Addボタンの隣にあるQuick Configurationボタンを使用して簡略化されたキャッシュルール構成を行うこともできます。有効範囲はデフォルトですべてのリクエストに設定され、キャッシュ期間はCacheまたはFollow Origin Cache Rulesのいずれかを選択できますが、Advanced Settingsオプションはここでは利用できません。Do Not Cacheを直接選択してこの単純なルールの適用優先順位を迅速に設定することもできます。



設定を完了したら、OKをクリックし、次にNextを選択して設定を送信してください。本番環境に影響を与える可能性を最小限に抑えるため、ステージング環境でのPre-deployテストを強く推奨します。この重要なステップにより、設定がライブ環境に適用される前に正確性を確認できます。設定の正確性を確認したら、Deploy Nowをクリックしてライブ環境に実装します。設定は通常3〜5分以内に有効になります。事前デプロイテストの詳細および設定の有効性を確認するための包括的なガイダンスについては、チュートリアル構成をステージング環境にデプロイして検証するを参照してください。

ベストプラクティス

例1:特定のユーザーエージェントによって要求された特定のファイルタイプに固定キャッシュ期間を適用する

このルールの対象ドメインでは、ファイルタイプがpng;jpegでユーザーエージェントがMozilla/4.0の場合、ファイルはCDNエッジサーバーで6時間の固定キャッシュ期間を持ちます。ルールはまた、オリジンレスポンスヘッダーのno-cacheパラメータ、リクエストのAuthorizationヘッダー、およびクライアントリロードリクエストを強制的に無視します。

注意事項

このチュートリアルで構成されたキャッシュルールはCDNサーバーで有効です。Content AccelerationMedia Acceleration Live Broadcastなど、異なるCDNソリューションでは同じファイルタイプに対して異なるデフォルトキャッシュルールが適用される場合があります。ここに提供されるデフォルトルールは一般的な参考用です。デフォルトルールがウェブサイトにとって重要である場合、技術サポートに問い合わせて確認してください。