キャッシュ有効期限ルールを使用すると、 および DCDN のエッジノード (POP) 上でリソースのキャッシュ期間を正確に制御できます。これにより、コンテンツの新鮮さ、アクセスパフォーマンス、およびオリジンフェッチコストのバランスを最適化できます。このドキュメントでは、これらのルールの動作原理、設定方法、検証方法について説明します。また、トラブルシューティングのガイダンスとベストプラクティスも提供します。
注意事項
ドメイン名を追加した後、キャッシュ時間を変更できます。キャッシュ期間は、CDN back-to-origin トラフィックとコストに影響します。キャッシュの有効期限は、オリジンフェッチの頻度に影響します。ビジネスニーズに基づいてリソースのキャッシュ期間を設定してください。
キャッシュの有効期限が短すぎると、DCDN はオリジンから頻繁にデータをフェッチするため、オリジンサーバーのトラフィックが増加します。キャッシュの有効期限が長すぎると、データ更新が遅延します。
アクセス頻度の低い (つまり、同じ DCDN POP 上のリソースがクライアントから頻繁にリクエストされない) DCDN POP にキャッシュされたリソースは、キャッシュの有効期限が切れる前に、DCDN POP 上の他のより人気のあるリソースによって上書きされる可能性があります。
-
DCDN の POP がオリジンサーバーから静的ファイルを受信すると、DCDN のデフォルトのキャッシュルールと優先度に基づいてリソースをキャッシュします。動的ファイルのキャッシュルールについては、「動的および静的コンテンツのアクセラレーションルールの概要」をご参照ください。
オリジンサーバー上のコンテンツを同じファイル名で更新しないでください。代わりに、同期にはバージョン番号を使用してください。
更新前後のコンテンツを正確に区別するために、バージョン番号を使用してオリジンコンテンツを同期します。これは、コンテンツを更新するときに異なるファイル名を使用することを意味します。たとえば、img-v1.0.jpg や img-v2.1.jpg などの名前を使用できます。
操作手順
- DCDNコンソールにログインします。
- 左側のナビゲーションペインで ドメイン名 をクリックします。
On theドメイン名ページで、管理するドメイン名を見つけて、設定.
- ドメイン名の左側のナビゲーションウィンドウで、[キャッシング] をクリックします。
-
キャッシュ期間 タブで、追加 をクリックします。
-
キャッシュ期間 ダイアログボックスで、キャッシュルールを設定します。

パラメーター
説明
[タイプ]
ディレクトリ または ファイル名拡張子 でリソースの範囲を指定します。
-
[ディレクトリ]:指定されたパス内のすべてのリソースに同じキャッシュルールを設定します。
-
[ファイル名拡張子]:指定されたファイルタイプのリソースに同じキャッシュルールを設定します。
[コンテンツ]
ルールが適用されるディレクトリまたはファイル拡張子。
-
[タイプ] を ディレクトリ に設定した場合、次の点にご注意ください。
-
一度に追加できるディレクトリは 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。最大期間は 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 までの整数です。値が大きいほど優先度が高くなります。最も優先度の高いルールが最初に適用されます。
説明-
複数のキャッシュルールを設定する場合は、各ルールに異なる重みを設定して実行の優先度を制御します。
-
複数のルールが同じ重みを持つ場合、ルールタイプに関係なく、先に作成されたルールが優先されます。
-
複数のキャッシュポリシーが設定されている場合、DCDN は 1 つのポリシーが有効になった後、他のキャッシュポリシーのマッチングを停止します。
[ルール条件]
ルール条件により、リクエストが特定の基準を満たす場合にのみルールを適用できます。
重要機能がルール条件を参照する場合、実行順序は機能設定の順序ではなく、関連するルール条件の優先順位に従います。
-
使用しない:条件付きルールを無効にします。
-
条件付きルールはルールエンジンで追加または編集できます。
-
-
OK をクリックして設定を保存します。
キャッシュルールの設定が正常に完了すると、そのルールは キャッシュ期間 タブのリストに表示されます。変更 または 削除 をクリックしてルールを管理できます。
Alibaba Cloud DCDN のデフォルトのキャッシュルールと優先度
HTTP ステータスコードが 200, 203, 206, 300, 301, 308, or 410 のオリジン応答の場合、キャッシュの有効期限は次のルールによって決定されます。
DCDN POP がオリジンサーバーからファイルリソースを受信すると、次の優先順位でキャッシュルールを適用します。数値が小さいほど、優先度が高くなります。
オリジンサーバーが
pragma:no-cache、cache-control:no-cache(またはno-store、またはmax-age=0) で応答した場合、DCDN はリソースをキャッシュしません。DCDN コンソールで設定されたキャッシュの有効期限または状態コードの有効期限。
説明DCDN リクエストが複数のルールに一致する場合、1 つのルールのみが適用されます。優先度は、まず重み、次に作成時間によって決定されます。
複数のキャッシュルールがある場合は、各ルールに異なる重みを設定して、実行の優先度を制御します。重みが大きいほど優先度が高くなります。
同じ重みを持つルールの場合、ルールタイプに関係なく、先に作成されたルールの方が優先度が高くなります。
オリジンサーバーで設定されている他のキャッシュルール。優先度は高いものから順に、
cache-control>expires>last-modified>ETagとなります。オリジンサーバーからの応答の
cache-controlヘッダーが 0 より大きいmax-ageまたはs-maxage値を指定している場合、cache-controlヘッダーが生存時間の設定に使用されます。例: cache-control:max-age=3600。max-ageとs-maxageの両方が存在する場合、s-maxageが優先されます。オリジンの応答に
cache-controlヘッダーは含まれていないが、Expiresヘッダーが含まれている場合、キャッシュの有効期限はExpiresヘッダーによって決定されます。例: expires:Tue, 25 Nov 2031 17:25:43 GMT。オリジンの応答に
cache-controlまたはExpiresは含まれていないが、last-modifiedが含まれている場合、キャッシュ時間は数式 (現在の時刻 -last-modified) × 0.1 を使用して計算されます。結果が 10 秒から 3600 秒の間の場合、その結果が使用されます。結果が 10 秒未満の場合、キャッシュ時間は 10 秒です。結果が 3600 秒より大きい場合、キャッシュ時間は 3600 秒です。オリジンの応答に
cache-control、Expires、またはlast-modifiedは含まれていないが、ETagが含まれている場合、リソースは 10 秒間キャッシュされます。
オリジンサーバーから返されたデータにキャッシュ関連のレスポンスヘッダー (
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:.txt ファイルを 7 日間キャッシュするには、DCDN コンソールで .txt ファイル拡張子のキャッシュルールを追加し、キャッシュ TTL を 7 日間に設定します。

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