同じ画像URLの各POPでのCDN キャッシュ MISS
この記事では、Adobe Experience Manager as a Cloud Serviceでサーブレットによって提供される画像が、キャッシュ制御ヘッダーで24時間TTLが指定されている場合でも、CDN キャッシュ MISSが異なるCDN プレゼンスのポイント(POP)で発生する可能性がある理由を説明し、予想されるCDN キャッシュ動作に関するガイダンスを提供します。
説明 description
環境
Adobe Experience Manager as a Cloud Service(すべてのバージョン)
問題/症状
サーブレットは、ストアページのJPEG画像を返し、Cache-Control: max-age=86400 ヘッダー(24時間)を設定します。 ただし、CDN ログでは、1日以内に同じ画像URLがパブリッシュインスタンスから複数回フェッチされ、キャッシュステータスが異なるCDNの場所(POP)でMISSになることが示されます。
ログエントリの例:
/path/sample.jpgのPOP "RTM"でミスをキャッシュ/path/sample.jpgのPOP "TOJ"でミスをキャッシュ
POPに関係なく、最初のリクエストから24時間、画像がキャッシュされ、CDNから提供されることが期待されます。 代わりに、各POPは、画像の最初のリクエストでキャッシュミスを経験します。
原因
各CDN POPは独自のキャッシュを運用します。 各POPでのリソースに対する最初のリクエストはMISSとなり、そのPOPからの後続のリクエストのみがTTLの有効期限が切れるまでキャッシュから提供されます。
解決策 resolution
問題を修正するには、次の手順に従います。
- 各CDN POPが独自のキャッシュを保持することを理解します。 各POPにおける特定のURLに対する最初のリクエストはキャッシュミスとなり、その同じPOPからの後続のリクエスト(TTLは有効ですが)はキャッシュヒットとなります。
- サーブレットがブラウザーとCDNの両方に明示的なキャッシュヘッダーを設定していることを確認します。
Cache-Control: max-age=86400, publicを使用し、サポートされている場合は、CDN固有のTTLにSurrogate-Controlまたはs-maxageを追加することを検討してください。 privateまたはno-storeディレクティブはCDN キャッシュを妨げるので、使用しないでください。curlやCDN ログなどのツールを使用して、各POPでの最初のリクエストがMISSであり、TTL内の同じPOPからの後続のリクエストがHITであることを確認します。
詳しくは、AEM as a Cloud Service CDN キャッシュ のドキュメントを参照してください。
recommendation-more-help
experience-cloud-kcs-help-kbarticles