同じ画像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

問題を修正するには、次の手順に従います。

  1. 各CDN POPが独自のキャッシュを保持することを理解します。 各POPにおける特定のURLに対する最初のリクエストはキャッシュミスとなり、その同じPOPからの後続のリクエスト(TTLは有効ですが)はキャッシュヒットとなります。
  2. サーブレットがブラウザーとCDNの両方に明示的なキャッシュヘッダーを設定していることを確認します。 Cache-Control: max-age=86400, publicを使用し、サポートされている場合は、CDN固有のTTLにSurrogate-Controlまたはs-maxageを追加することを検討してください。
  3. privateまたはno-store ディレクティブはCDN キャッシュを妨げるので、使用しないでください。
  4. curlやCDN ログなどのツールを使用して、各POPでの最初のリクエストがMISSであり、TTL内の同じPOPからの後続のリクエストがHITであることを確認します。

詳しくは、AEM as a Cloud Service CDN キャッシュ ​のドキュメントを参照してください。

recommendation-more-help
experience-cloud-kcs-help-kbarticles