すべてのプロダクト
Search
ドキュメントセンター

:リソースのキャッシュルールの作成

最終更新日:Aug 09, 2024

Time-to-live (TTL) は、リソースが Dynamic Content Delivery Network (DCDN) ポイントオブプレゼンス (POP) にキャッシュされている時間です。 キャッシュされたリソースのTTLが終了すると、POP上のリソースは期限切れになります。期限切れのリソースにアクセスしようとする リクエストは、オリジンサーバーにリダイレクトされます。 検索されたリソースはクライアントに返され、POPにキャッシュされます。 ファイルディレクトリまたはファイル名拡張子に基づいて、静的リソースのキャッシュルールを作成できます。

使用上の注意

  • ドメイン名を追加した後、TTL値を変更できます。 オリジントラフィックの量と発生した料金は、指定したTTLによって異なります。 リソースTTLは、オリジンフェッチ頻度に影響します。 ビジネス要件に基づいてTTLを指定します。

    短いTTLは、頻繁なオリジンフェッチを引き起こし、オリジンサーバーの負荷を増加させる可能性があります。 TTLが長いと、POP上のリソースが期限切れになる可能性があります。

  • POP上にキャッシュされたリソースがあまり頻繁にアクセスされない場合、リソースは、リソースが期限切れになる前にPOP上で頻繁にアクセスされるリソースによって上書きされ得る。

  • 静的ファイルのキャッシュルールと実行されるルールについては、「デフォルトのキャッシュルールとキャッシュルール の優先順位」をご参照ください。 動的ファイルのキャッシュルールについては、「概要」をご参照ください。

  • 配信元サーバー上のファイルを更新する場合は、更新後のファイルバージョンを区別するために、ファイル名にバージョン番号を追加することを推奨します。

    このように、更新後のファイルの各バージョンは一意の名前を持ちます。 たとえば、ファイルを更新する前にimg-v1.0.jp g、ファイルを更新した後にimg-v2.1.jp gという名前を付けることができます。

手順

  1. DCDNコンソール

  2. 左側のナビゲーションウィンドウで、ドメイン名.

  3. ドメイン名ページで、管理するドメイン名を見つけて、設定.

  4. ドメイン名の左側のナビゲーションツリーで、キャッシング.

  5. キャッシュ期間タブをクリックします。追加.

  6. キャッシュ期間ダイアログボックスで、次の表に従ってパラメーターを設定します。

    配置缓存过期时间

    パラメーター

    説明

    タイプ

    ディレクトリ または ファイル名拡張子 を選択します。

    • ディレクトリ: 同じディレクトリ内のリソースのキャッシュルールを追加します。

    • ファイル名拡張子: 同じファイル名拡張子を持つリソースのキャッシュルールを追加します。

    コンテンツ

    キャッシュルールを追加するディレクトリまたはファイル名の拡張子を指定します。

    • ディレクトリ を選択した場合、次のルールに注意してください。

      • 一度に入力できるディレクトリは1つだけです。 スラッシュ (/) を使用して、すべてのディレクトリを指定できます。

      • フルパスを入力できます。 パスはスラッシュ (/) で始まる必要があります。 例: /directory/aaa

    • ファイル名拡張子 を選択した場合、次のルールに注意してください。

      • 1つ以上のファイル名拡張子を入力できます。 ファイル名の拡張子はコンマ (,) で区切ります。 例: jpg,txt ファイル名拡張は大文字と小文字を区別します。

        次の種類の静的ファイルがサポートされています。

        • 画像: GIF、PNG、BMP、JPEG、およびJPG。

        • Webページ: HTML、HTM、およびSHTML。

        • オーディオおよびビデオファイル: MP3、WMA、FLV、MP4、WMV、OGG、およびAVI。

        • テキストファイル: DOC、DOCX、XLS、XLSX、PPT、PPTX、TXT、およびPDF。

        • その他: ZIP、EXE、TAT、ICO、CSS、JS、SWF、APK、M3U8、TS、EJS、SVG、WOFF、およびOTF。

      • アスタリスクのワイルドカード文字 (*) を使用してすべてのファイルタイプを指定することはできません。

    有効期限

    TTLを指定します。 最大TTLは3年です。 以下のルールにご注意ください。

    • 画像やアプリケーションパッケージなど、更新頻度の低い静的ファイルには、1か月以上のTTLを指定します。

    • ビジネス要件に基づいて、JavaScriptファイルやCSSファイルなど、頻繁に更新される静的ファイルのTTLを指定します。

    • PHP、JSP、ASPファイルなどの動的ファイルのキャッシュを無効にするには、TTLを0秒に指定します。

    重み

    キャッシュルールの重みを指定します。 重みは、キャッシュルールの優先度を示す。 有効な値: 1 ~ 99。 より大きな値は、より高い優先度を指定する。

    説明
    • 複数のキャッシュルールを作成する場合は、各キャッシュルールに一意の重みを指定して優先順位を定義することを推奨します。

    • 同じ重みを持つキャッシュルールは、ルールの種類に関係なく、作成時間に基づいて優先順位が付けられます。 作成時間が最も早いルールが優先されます。

    • キャッシュされたリソースに複数のキャッシュルールを設定した場合、最初に一致したルールのみが有効になります。

  7. クリックOK.

    キャッシュ期間 タブで作成したキャッシュルールを変更または削除できます。

デフォルトのキャッシュルールとキャッシュルール の優先順位

POPがオリジンサーバーから静的ファイルを取得した後、POPは次のキャッシュルールの優先順位に基づいて静的ファイルを処理します。 より小さい数は、より高い優先度を指定する。 缓存优先级

  1. レスポンスにpragma:no-cachecache-control:no-cachecache-control:no-store、またはcache-control:max-age=0ディレクティブが含まれている場合、静的ファイルはキャッシュされません。

  2. DCDNは、キャッシュされたリソースのTTL、またはコンソールで設定されたHTTPステータスコードのTTLに従います。

    説明

    リクエストが複数のキャッシュルールに一致する場合、優先順位の順序: 重み> 作成時間に基づいて1つのルールのみが有効になります。

    • 複数のキャッシュルールを作成する場合は、各キャッシュルールに一意の重みを指定して、キャッシュルールの優先順位を定義することを推奨します。 より高い重みは、より高い優先度を指定する。

    • 同じ重みを持つキャッシュルールは、ルールの種類に関係なく、作成時間に基づいて優先順位が付けられます。 作成時間が最も早いルールが優先されます。

  3. Alibaba Cloud CDNは、オリジンサーバーに設定された他のキャッシュルールに従います。 配信元サーバーからの応答のヘッダーは、キャッシュ制御 > 期限切れ > Last-Modified > ETagの優先順位の降順です。

    1. 応答にはCache-Controlヘッダーが含まれ、ディレクティブはmax-ageまたはs-maxageで、Cache-Control:max-age=3600など、0より大きい値に設定されます。 max-ageディレクティブとs-maxageディレクティブの両方が存在する場合、s-maxageディレクティブの値が優先されます。

    2. 応答は、Expires: Tue、11月25日2031 17:25:43GMTなどのExpiresヘッダーを搬送する。

    3. レスポンスにETagまたはLast-modifiedヘッダーが含まれている場合、TTLは次のルールに基づいて計算されます。

      1. 応答がLast − Modifiedヘッダを搬送する場合、TTL = (Current time − Last − Modified) × 0.1である。 結果が10秒から3,600秒の場合、結果が適用されます。 結果が10秒未満の場合、TTLは10秒です。 結果が3,600秒を超える場合、TTLは3,600秒です。

      2. 応答にETagヘッダーのみが含まれる場合、TTLは10秒です。

  4. 応答にETagLast-ModifiedCache-Control、またはExpiresヘッダーが含まれていない場合、静的ファイルはPOPにキャッシュされません。

HTTPキャッシュメカニズム

HTTPには、キャッシュ動作の制御に使用できる3種類のヘッダーがあります。

  1. キャッシュTTL

    クライアントがサーバーからリソースを要求すると、クライアントとサーバーはPOPにキャッシュされている返されたリソースのTTLを定義します。 TTLが終了すると、リソースは期限切れになります。

    HTTPは、キャッシュTTLを定義するために使用できる次のタイプのヘッダーを提供します。

    ヘッダー

    プロトコルバージョン

    説明

    データ型

    Pragma

    HTTP/1.0

    Pragmaヘッダーは、リソースをキャッシュするかどうかを指定します。 Pragmaがno-cacheに設定されている場合、リソースはキャッシュされません。 Pragmaは、HTTP/1.0のみを使用するサーバーと互換性があります。

    プラグマ: キャッシュなし

    リクエストとレスポンス

    Expires

    HTTP/1.0

    Expiresヘッダーは、日付と時刻を指定します。 キャッシュされたリソースは、指定された時点で期限切れになります。

    Expiresが0などの無効な値に設定されている場合、リソースは期限切れです。

    有効期限: 水曜日、10月2022日07:28:00 GMT

    レスポンス

    Cache-Control

    HTTP/1.1

    Cache-Controlヘッダーには、キャッシュポリシーを指定するさまざまなディレクティブがあります。 ブラウザなどの主流クライアントは、キャッシュ制御ヘッダーを使用してキャッシュ動作を制御します。

    次のディレクティブは、ファイルをキャッシュしないことを指定します。

    • キャッシュ制御: no-Cache

    • キャッシュ制御: no-store

    • キャッシュ制御: max-age=0

    次のディレクティブは、ファイルが1時間キャッシュされることを指定します。Cache-Control:max-age=3600。

    リクエストとレスポンス

  2. リソースタグ

    クライアントが最初にサーバーにリソースを要求すると、サーバーは応答ヘッダーにタグを追加します。 次にクライアントがサーバからリソースを要求するとき、タグは要求されたリソースを識別するために使用される。 後続の要求のヘッダーはこのタグを保持します。 サーバーがこのタグをチェックし、要求されたリソースが更新されていないことを確認すると、HTTP 304ステータスコードがクライアントに返されます。 クライアントは、ローカルキャッシュからリソースを取得します。 サーバが、タグがサーバ上のリソースのタグとは異なることを検出した場合、サーバは、リソースが更新されたか、または期限切れになったことをクライアントに通知する。 この場合、クライアントはサーバーからリソースの最新バージョンを取得する必要があります。

    HTTPには、キャッシュのバージョンを制御するために使用できる次の種類のヘッダーがあります。

    ヘッダー

    プロトコルバージョン

    説明

    データ型

    Last-Modified

    HTTP/1.0

    Last-Modifiedは、リソースが最後に更新された時刻を指定します。

    最終変更: 10月21日水曜日2015 07:28:00 GMT

    レスポンス

    ETag

    HTTP/1.1

    ETagヘッダーは、リソースの各バージョンの一意の識別子です。

    ETagは、リソースを更新するかどうかを指定します。 リソースが更新された場合、サーバーは完全な応答を返す必要はありません。

    ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"

    レスポンス

  3. コンテンツネゴシエーション

    キャッシュソフトウェアは、キーワードを使用してディスク上のオブジェクトをインデックスします。 HTTP/1.0では、URLがキーワードとして使用されます。 しかしながら、異なるリソースが同じURLを指してもよい。 リソースを区別するために、クライアントはAccept-LanguageやAccept-Charsetヘッダーなどの追加情報を提供する必要があります。 HTTP/1.1は、コンテンツネゴシエーションを実装するためにVaryレスポンスヘッダーを導入しました。 Varyヘッダーは、コンテンツネゴシエーションを実装するために含める必要があるリクエストヘッダーをリストします。

    コンテンツネゴシエーションでは、Varyヘッダーを使用してバリアントを区別します。 このようにして、クライアントは所望のバリアントを取り出すことができる。

    ヘッダー

    プロトコルバージョン

    説明

    データ型

    Vary

    HTTP/1.1

    • サーバーはVary: Accept-Encodingを使用して、要求されたリソースに2つのバリアントがあることをPOPなどの受信者に通知します。 バリアントの1つは圧縮され、もう1つは圧縮されません。 クライアントが同じリソースに対して DCDNにリクエストを送信する場合、古いバージョンのブラウザでは、非互換性を防ぐためにリソースを解凍する必要があります。 最新バージョンのブラウザでは、データ転送を減らすためにリソースを圧縮する必要があります。

    • サーバーはVary: User-Agentを使用して、リクエストを開始するブラウザーを識別し、POPなどの受信者にブラウザーの種類を通知します。 POPは、ブラウザの種類に基づいてバリアントをキャッシュします。

    Vary: Accept-Encoding

    Vary: Accept-Encoding,User-Agent

    レスポンス

設定例

例1: POPをキャッシュする場合。txtファイルは7日間、キャッシュルールを追加します。DCDNコンソールでtxtファイルを使用し、TTLを7日に設定します。不缓存

例2: 加速ドメイン名demo.aliyun.comに次のキャッシュルールが設定されています。 DCDN POPがリソース http://demo.aliyun.com/image/example.png を取得すると、2つのルールが一致します。 さらに、ルールは同じ重みを持ちます。 この場合、ルールは作成時間の順に優先される。 作成時刻が最も早いルールの優先度が高くなります。 したがって、/imageディレクトリに設定されているルールは、最も早く作成されるため、適用されます。缓存策略2

関連する API 操作

BatchSetDcdnDomainConfigs