CDN-Cache-Fehler bei jedem POP für dieselbe Bild-URL

In diesem Artikel wird beschrieben, warum von einem Servlet in Adobe Experience Manager as a Cloud Service bereitgestellte Bilder zu CDN-Cache-Fehlern an verschiedenen CDN Points of Presence (POPs) führen können, auch wenn Cache-Control-Kopfzeilen eine 24-Stunden-TTL angeben, und es wird Anleitung zum erwarteten CDN-Caching-Verhalten gegeben.

Beschreibung description

Umgebung

Adobe Experience Manager as a Cloud Service (alle Versionen)

Problem/Symptome

Ein Servlet gibt JPEG-Bilder für Speicherseiten zurück und legt eine Cache-Control: max-age=86400 Kopfzeile fest (24 Stunden). Allerdings zeigen CDN-Protokolle an, dass dieselbe Bild-URL innerhalb eines Tages mehrmals von der Veröffentlichungsinstanz abgerufen wird, wobei der Cache-Status an verschiedenen CDN-Speicherorten (POPs) fehlschlägt.

Beispielprotokolle:

  • Cache-Fehler bei POP „RTM“ für /path/sample.jpg
  • Cache-Fehler bei POP „TOJ“ für /path/sample.jpg

Es wird erwartet, dass das Bild zwischengespeichert und vom CDN für 24 Stunden nach der ersten Anfrage bereitgestellt wird, unabhängig vom POP. Stattdessen tritt bei jeder POP-Anfrage bei der ersten Bildanforderung ein Cache-Fehler auf.

Ursache

Jeder CDN-POP betreibt einen eigenen Cache. Die erste Anfrage für eine Ressource an jedem POP führt zu einem MISS, und nur nachfolgende Anfragen von diesem POP werden aus dem Cache bereitgestellt, bis die TTL abläuft.

Lösung resolution

Gehen Sie wie folgt vor, um das Problem zu beheben:

  1. Verstehen Sie, dass jeder CDN-POP seinen eigenen Cache verwaltet. Die erste Anforderung für eine bestimmte URL bei jedem POP führt zu einem Cache-Fehler. Nachfolgende Anforderungen von demselben POP (während TTL gültig ist) sind ein Cache-Treffer.
  2. Stellen Sie sicher, dass das Servlet explizite Cache-Kopfzeilen für den Browser und das CDN festlegt. Verwenden Sie Cache-Control: max-age=86400, public und erwägen Sie das Hinzufügen von Surrogate-Control oder s-maxage für CDN-spezifische TTL, falls unterstützt.
  3. Verwenden Sie keine private- oder no-store-Anweisungen, da diese das CDN-Caching verhindern.
  4. Verwenden Sie Tools wie curl und Überprüfen von CDN-Protokollen, um zu bestätigen, dass die erste Anfrage bei jedem POP ein MISS ist und dass nachfolgende Anfragen von demselben POP innerhalb der TTL Treffer sind.

Weitere Informationen finden Sie in der Dokumentation zum AEM as a Cloud Service CDNCaching.

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