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

Edge Security Acceleration:キャッシュ TTL の設定

最終更新日:Sep 11, 2026

キャッシュ有効期限ルールは、DCDN の POP (Point of Presence) におけるリソースのキャッシュ期間を制御し、コンテンツの鮮度、アクセスパフォーマンス、オリジンフェッチコストのバランスをとることを可能にします。このトピックでは、キャッシュルールの仕組み、設定方法と検証方法、キャッシュ問題のトラブルシューティング方法、および本番環境向けのベストプラクティスについて説明します。

注意事項

  • ドメイン名を追加した後、キャッシュ時間を変更できます。キャッシュ期間は、CDN back-to-origin トラフィックとコストに影響します。キャッシュの有効期限は、オリジンフェッチの頻度に影響します。ビジネスニーズに基づいてリソースのキャッシュ期間を設定してください。

    キャッシュの有効期限が短すぎると、DCDN はオリジンから頻繁にデータをフェッチするため、オリジンサーバーのトラフィックが増加します。キャッシュの有効期限が長すぎると、データ更新が遅延します。

  • アクセス頻度の低い (つまり、同じ DCDN POP 上のリソースがクライアントから頻繁にリクエストされない) DCDN POP にキャッシュされたリソースは、キャッシュの有効期限が切れる前に、DCDN POP 上の他のより人気のあるリソースによって上書きされる可能性があります。

  • DCDN POP がオリジンサーバーから静的ファイルを受信すると、DCDN のデフォルトのキャッシュルールと優先度に基づいてリソースをキャッシュします。動的ファイルのキャッシュルールについては、「動的コンテンツと静的コンテンツのアクセラレーションルールの概要」をご参照ください。

  • オリジンサーバー上のコンテンツを同じファイル名で更新しないでください。代わりに、同期にはバージョン番号を使用してください。

    更新前後のコンテンツを正確に区別するために、バージョン番号を使用してオリジンコンテンツを同期します。これは、コンテンツを更新するときに異なるファイル名を使用することを意味します。たとえば、img-v1.0.jpg や img-v2.1.jpg などの名前を使用できます。

手順

  1. DCDNコンソールにログインします。
  2. 左側のナビゲーションペインで ドメイン名 をクリックします。
  3. ドメイン名 ページで、対象のドメイン名を見つけ、設定 をクリックします。

  4. ドメイン名の左側のナビゲーションウィンドウで、[キャッシング] をクリックします。
  5. キャッシュ期間 タブで、追加 をクリックします。

  6. キャッシュ期間 ダイアログボックスで、キャッシュルールを設定します。

    image

    パラメーター

    説明

    [タイプ]

    ディレクトリ または ファイル名拡張子 でリソースの範囲を指定します。

    • [ディレクトリ]:指定されたパス内のすべてのリソースに同じキャッシュルールを設定します。

    • [ファイル名拡張子]:指定されたファイルタイプのリソースに同じキャッシュルールを設定します。

    [コンテンツ]

    ルールが適用されるディレクトリまたはファイル拡張子。

    • [タイプ] を ディレクトリ に設定する場合、次の点にご注意ください。

      • 一度に追加できるディレクトリは 1 つだけです。スラッシュ (/) はすべてのディレクトリに一致します。

      • ディレクトリのフルパスを入力してください。パスはスラッシュ (/) で始まる必要があります。例: /directory/aaa。

    • [タイプ] を ファイル名拡張子 に設定する場合、次の点にご注意ください。

      • 拡張子を 1 つ以上入力できます。複数の拡張子を入力する場合は、カンマ (,) で区切ります。例: jpg,txt。入力では大文字と小文字が区別されます。

        ファイル拡張子は、以下にリストされている一般的な静的ファイルタイプに限定されません。任意のカスタムファイル拡張子 (例:bytes または unity3d) を入力できます。システムは、これらのカスタム拡張子に一致するリソースを認識してキャッシュします。

        サポートされている静的ファイルの種類:

        • 画像: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。最大期間は 3 年です。次の設定を推奨します。

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

    • JS や CSS ファイルなど、頻繁に更新される静的ファイルの場合、ビジネスニーズに基づいてカスタム TTL を設定します。

    • PHP、JSP、ASP ファイルなどの動的ファイルの場合、キャッシュされないように TTL を 0 秒に設定します。

    [オリジンキャッシュポリシーを優先]

    有効にすると、Cache-Control や Pragma などのオリジンサーバーからのキャッシュポリシーヘッダーが優先されます。

    [オリジンの no-cache ヘッダーを無視]

    この機能を有効にすると、DCDN の POP は、オリジンサーバーからのレスポンスに含まれる以下のキャッシュポリシーヘッダーを無視します。これらのヘッダーは、コンテンツをキャッシュしてはならないことを示します。

    • Cache-Control: no-store

    • Cache-Control: no-cache

    • Cache-Control: max-age=0

    • Pragma: no-cache

    [クライアントは DCDN のキャッシュポリシーに従う]

    この機能が有効な場合、DCDN POP はクライアントに有効なキャッシュポリシーを返します。

    [強制的な再検証]

    このパラメーターは、キャッシュ TTL が 0 に設定されている場合にのみ有効になります。効果は次のとおりです。

    • 無効 (デフォルト): /DCDN のキャッシュ TTL が 0 に設定されている場合、/DCDN POP はファイルをキャッシュせず、リクエストごとにオリジンフェッチが実行されます。

    • 有効: DCDN のキャッシュ TTL が 0 に設定されている場合、ファイルは DCDN POP にキャッシュできますが、キャッシュされたコンテンツを検証するために、すべてのリクエストでオリジンフェッチが必要になります。

    [重み]

    キャッシュルールの優先度。有効な値は 1 から 99 までの整数です。値が大きいほど優先度が高くなります。優先度が最も高いルールが最初に適用されます。

    説明
    • 複数のキャッシュルールを設定する場合は、各ルールに異なる重みを設定して、実行の優先順位を制御します。

    • 複数のルールの重みが同じ場合、ルールの種類に関係なく、先に作成されたルールが優先されます。

    • 複数のキャッシュポリシーが設定されている場合、1 つのポリシーに一致すると、DCDN は他のキャッシュポリシーのマッチングを停止します。

    [ルール条件]

    ルール条件は、ユーザーリクエスト内のさまざまなパラメーターを識別し、そのリクエストに対して設定を有効にするかどうかを決定します。

    重要

    ルール条件を参照する場合、機能自体の設定順序ではなく、関連するルール条件の優先度に基づいて照合されます。

    • 使用しない:ルール条件を使用しません。

    • ルール条件を追加または編集するには、ルールエンジンで管理します。

  7. 設定を保存するには、OK をクリックします。

    キャッシュルールを正常に設定した後、キャッシュ期間 タブのリストでルールを見つけることができます。変更 または 削除 をクリックしてルールを管理できます。

Alibaba Cloud DCDN のデフォルトのキャッシュルールと優先度

HTTP ステータスコードが 200, 203, 206, 300, 301, 308, or 410 のオリジン応答の場合、キャッシュの有効期限は次のルールによって決定されます。

DCDN POP がオリジンサーバーからファイルリソースを受信すると、次の優先順位でキャッシュルールを適用します。数値が小さいほど、優先度が高くなります。缓存优先级

  1. オリジンサーバーが pragma:no-cache、cache-control:no-cache (または no-store、または max-age=0) で応答した場合、DCDN はリソースをキャッシュしません。

  2. DCDN コンソールで設定されたキャッシュの有効期限または状態コードの有効期限。

    説明

    DCDN リクエストが複数のルールに一致する場合、1 つのルールのみが適用されます。優先度は、まず重み、次に作成時間によって決定されます。

    • 複数のキャッシュルールがある場合は、各ルールに異なる重みを設定して、実行の優先度を制御します。重みが大きいほど優先度が高くなります。

    • 同じ重みを持つルールの場合、ルールタイプに関係なく、先に作成されたルールの方が優先度が高くなります。

  3. オリジンサーバーで設定されている他のキャッシュルール。優先度は高いものから順に、cache-control > expires > last-modified > ETag となります。

    1. オリジンサーバーからの応答の cache-control ヘッダーが 0 より大きい max-age または s-maxage 値を指定している場合、cache-control ヘッダーが生存時間の設定に使用されます。例: cache-control:max-age=3600。max-age と s-maxage の両方が存在する場合、s-maxage が優先されます。

    2. オリジンの応答に cache-control ヘッダーは含まれていないが、Expires ヘッダーが含まれている場合、キャッシュの有効期限は Expires ヘッダーによって決定されます。例: expires:Tue, 25 Nov 2031 17:25:43 GMT。

    3. オリジンの応答に cache-control または Expires は含まれていないが、last-modified が含まれている場合、キャッシュ時間は数式 (現在の時刻 - last-modified) × 0.1 を使用して計算されます。結果が 10 秒から 3600 秒の間の場合、その結果が使用されます。結果が 10 秒未満の場合、キャッシュ時間は 10 秒です。結果が 3600 秒より大きい場合、キャッシュ時間は 3600 秒です。

    4. オリジンの応答に cache-control、Expires、または last-modified は含まれていないが、ETag が含まれている場合、リソースは 10 秒間キャッシュされます。

  4. オリジンサーバーから返されたデータにキャッシュ関連のレスポンスヘッダー (cache-control、expires、last-modified、または ETag) が含まれていない場合、リソースはデフォルトではキャッシュされません。

キャッシュ応答情報の説明

  • Date:

    • オリジンサーバーが DCDN POP への応答でリソースを送信した時刻を示します。

    • DCDN POP が、オリジンリクエストに If-Modified-Since または If-None-Match ヘッダーを含めることでオリジンサーバーでリソースを再検証する場合、オリジンサーバーが 304 状態コードを返すと Date 情報が更新されます。

    • フォーマットはグリニッジ標準時 (GMT) です。例: Sat, 19 Apr 2025 08:58:31 GMT。

  • X-Cache:

    リクエストされたリソースが DCDN POP のキャッシュにヒットしたかどうかを示します。次の表に、考えられる値を示します。

    ステータス

    説明

    HIT

    リクエストされたリソースが DCDN POP のキャッシュにヒットしました。

    MISS

    リクエストされたリソースが DCDN POP のキャッシュにヒットしませんでした。リソースはオリジンサーバーによって提供されました。

  • X-Swift-Cachetime:

    • リソースの DCDN POP 上での残りのキャッシュ時間 (秒単位) を示します。

    • X-Swift-Cachetime = Ali-Swift-Global-Savetime + CDN に設定されたキャッシュ有効期限 - X-Swift-SaveTime。

    • X-Swift-Cachetime は、DCDN に設定されたキャッシュ有効期限と常に等しいとは限りません。次の 3 つの状況が発生する可能性があります。

      • X-Swift-Cachetime = DCDN に設定されたキャッシュ有効期限 (例: 3600 秒)。

      • X-Swift-Cachetime が DCDN に設定されたキャッシュ有効期限よりわずかに短い。たとえば、DCDN のキャッシュ有効期限が 300 秒に設定されているのに、X-Swift-Cachetime が 295 秒である場合。これは、次の理由が考えられます。

        • レイヤー 1 POP がレイヤー 2 POP からデータをフェッチするときに高いレイテンシーが発生する。

        • レイヤー 1 とレイヤー 2 の POP の時計が同期していない。

      • X-Swift-Cachetime の値が負である。これは、DCDN のキャッシュ有効期限が変更されたことが原因である可能性があります。クライアントがリクエストを送信すると、レイヤー 1 POP のキャッシュは期限切れになっていますが、レイヤー 2 POP のキャッシュは期限切れになっていません。たとえば、DCDN のキャッシュ有効期限がもともと 3600 秒で、後で 300 秒に変更されたとします。クライアントが最初のリクエストから 600 秒後にリクエストを送信した場合、レスポンスヘッダーは X-Swift-Cachetime:-300 となります。この問題を解決するには、キャッシュをリフレッシュします。

  • X-Swift-SaveTime:

    • クライアントが直接アクセスした DCDN POP にリソースが最初にキャッシュされた時刻を示します。これは通常、レイヤー 1 POP です。

    • フォーマットはグリニッジ標準時 (GMT) です。例: Sat, 19 Apr 2025 08:58:31 GMT。

  • Ali-Swift-Global-Savetime:

    • リソースが DCDN POP に最初にキャッシュされた時刻を示します。これは、サイトのキャッシュアーキテクチャに応じて、レイヤー 2 POP または別のキャッシュレイヤーの POP である可能性があります。

    • フォーマットは UNIX タイムスタンプです。例: 1745053111 (これは 2025-04-19 16:58:31 を表します)。

リソースのキャッシュステータスの確認

キャッシュ TTL を設定した後、これらの方法を使用して、リソースが DCDN キャッシュから提供されているかどうかを確認できます。

  • 方法 1:curl コマンドの使用

    ターミナルで、curl -I コマンドを実行してターゲット URL にリクエストを送信し、レスポンスヘッダーの X-Cache フィールドを確認して、キャッシュがヒットしたかどうかを判断します。

    curl -I http://<accelerated_domain_name>/<resource_path>

    レスポンスヘッダーで、X-Cache フィールドを確認します:

    • X-Cache: HIT は、リソースが DCDN キャッシュから配信されたことを示します。

    • X-Cache: MISS は、リソースが DCDN キャッシュに見つからず、オリジンサーバーから直接配信されたことを示します。

  • 方法 2:ブラウザー開発者ツールの使用

    ブラウザーの開発者ツール (F12) を使用します。[ネットワーク] タブで、リソース URL にアクセスします。リクエストを選択し、レスポンスの X-Cache ヘッダーを確認します。

HTTP キャッシュ制御メカニズム

HTTP プロトコルは、3 種類のキャッシュ制御メカニズムを定義しています。

  1. 有効期限検証メカニズム

    クライアントがサーバーからリソースをリクエストすると、リソースの有効期限が設定されます。この時刻より前は、リソースのキャッシュコピーは有効と見なされます。この時刻を過ぎると、キャッシュコピーは無効と見なされます。

    キャッシュの有効期限を制御する一般的な HTTP ヘッダーは次のとおりです。

    ヘッダー名

    プロトコルバージョン

    機能

    値の例

    タイプ

    Pragma

    HTTP/1.0

    Pragma は、コンテンツをキャッシュすべきでないかどうかを示します。一般的な値は no-cache で、これはファイルがキャッシュされないことを意味します。これは、HTTP/1.0 のみをサポートするサーバーとの互換性のためにしばしば使用されます。

    Pragma:no-cache

    リクエスト/レスポンス

    Expires

    HTTP/1.0

    Expires レスポンスヘッダーには、キャッシュされたコンテンツが期限切れになる日時が含まれます。

    0 などの無効な日付が使用された場合、それはリソースがすでに期限切れであることを意味します。

    Expires: Wed, 21 Oct 2022 07:28:00 GMT

    レスポンス

    Cache-Control

    HTTP/1.1

    Cache-Control レスポンスヘッダーは、柔軟なキャッシュ制御を実現するためにさまざまな命令で設定できます。これは、ブラウザなどの最新のクライアントがキャッシュを制御するために使用する主要なヘッダーです。

    次の 3 つの例は、ファイルをキャッシュすべきでないことを示しています。

    • Cache-Control:no-cache

    • Cache-Control:no-store

    • Cache-Control:max-age=0

    キャッシュの有効期間が 1 時間であることを示す例: Cache-Control:max-age=3600

    リクエスト/レスポンス

  2. リソースタグ検証メカニズム

    クライアントが最初にサーバーからリソースをリクエストすると、サーバーはレスポンスヘッダーにリソースタグを含めます。このタグは、同じリソースに対する後続のリクエストの検証識別子として機能します。クライアントが再度リソースをリクエストすると、リクエストヘッダーにタグを含めます。サーバーがタグを検証し、リソースが更新されていないと判断した場合、HTTP 304 状態コードで応答します。これは、クライアントがローカルのキャッシュコピーを引き続き使用できることを示します。サーバーが不一致を検出した場合、それはリソースが変更されたことを示し、クライアントは再度リソースコンテンツを取得する必要があります。

    キャッシュバージョンを制御する一般的な HTTP ヘッダーは次のとおりです。

    ヘッダー名

    プロトコルバージョン

    機能

    値の例

    タイプ

    Last-Modified

    HTTP/1.0

    Last-Modified は、リソースの最終変更時刻を示します。

    Last-Modified: Wed, 21 Oct 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 ヘッダーが導入されました。このヘッダーは、コンテンツネゴシエーションに使用されるリクエストメッセージのヘッダーを指定します。

    複数コピーネゴシエーションメカニズムは、通常、HTTP Vary ヘッダーを使用して異なるキャッシュコピーを区別します。これにより、同じリソースをリクエストする異なるクライアントが、そのリソースの異なるバージョンを受信できるようになります。

    ヘッダー名

    プロトコルバージョン

    説明

    値の例

    タイプ

    Vary

    HTTP/1.1

    一般的な例:

    • サーバーは Vary: Accept-Encoding を指定して、受信側 (たとえば DCDN POP) に、このリソースに対して 2 つのバージョンのリソース (圧縮版と非圧縮版) をキャッシュする必要があることを通知します。クライアントが DCDN から同じリソースをリクエストすると、古いブラウザは非圧縮リソースを取得し (互換性の問題を回避するため)、新しいブラウザは圧縮リソースを取得します (データ転送トラフィックを削減するため)。

    • サーバーは Vary: User-Agent を指定して、リクエストを送信しているブラウザのタイプを識別し、受信側 (たとえば DCDN POP) に、ブラウザのタイプに基づいて対応するバージョンのリソースをキャッシュするように通知します。

    Vary: Accept-Encoding

    Vary: Accept-Encoding,User-Agent

    レスポンス

設定例

例 1:.txt ファイルを 7 日間キャッシュするには、DCDN コンソールで .txt ファイル拡張子のキャッシュルールを追加し、キャッシュ TTL を 7 日間に設定します。

image.png

例 2: アクセラレーションドメイン名 demo.aliyun.com に、次のキャッシュポリシーが設定されています。 DCDN POP がオリジンからリソース http://demo.aliyun.com/image/example.png を取得すると、2 つのルールが一致します。 両方のルールの重みが同じであるため、システムは先に作成されたルールを優先します。 /image ディレクトリのルールの方が先に作成されています。 したがって、このディレクトリベースのルールが有効になります。image.png

関連 API

BatchSetDcdnDomainConfigs