AEM Publish

Der AEM-Publish-Service verfügt über zwei primäre Zwischenspeicherungsebenen, AEM as a Cloud Service CDN und AEM Dispatcher. Optional kann ein kundenverwaltetes CDN vor dem AEM as a Cloud Service CDN platziert werden. Das AEM as a Cloud Service CDN bietet eine Edge-Bereitstellung von Inhalten, um sicherzustellen, dass Erlebnisse für Benutzerinnen und Benutzer auf der ganzen Welt mit geringer Latenz bereitgestellt werden. AEM Dispatcher bietet die Zwischenspeicherung direkt vor AEM Publish und wird verwendet, um eine unnötige Belastungen von AEM Publish selbst zu vermeiden.

Übersichtsdiagramm zur Zwischenspeicherung bei AEM Publish

CDN

Die Zwischenspeicherung des AEM as a Cloud Service CDN wird von HTTP-Antwort-Cache-Headern gesteuert und dient zum Zwischenspeichern von Inhalten, um ein Gleichgewicht zwischen Aktualität und Leistung zu optimieren. Das CDN befindet sich zwischen den Endbenutzenden und dem AEM Dispatcher und wird verwendet, um Inhalte so nah wie möglich an den Endbenutzenden zwischenzuspeichern und ihnen so ein leistungsfähiges Erlebnis zu gewährleisten.

AEM Publish-CDN

Die Konfiguration der Zwischenspeicherung von Inhalten durch das CDN ist auf das Festlegen von Cache-Headern für HTTP-Antworten beschränkt. Diese Cache-Header werden normalerweise in AEM Dispatcher-Vhost-Konfigurationen mithilfe von mod_headers festgelegt, können aber auch in benutzerdefiniertem Java™-Code festgelegt werden, der in AEM Publish selbst ausgeführt wird.

Wann werden HTTP-Anfragen/-Antworten zwischengespeichert?

Das AEM as a Cloud Service CDN speichert nur HTTP-Antworten zwischen, und alle folgenden Kriterien müssen erfüllt sein:

  • Der HTTP-Antwortstatus ist 2xx oder 3xx.
  • Die HTTP-Anfragemethode ist GET oder HEAD
  • Mindestens einer der folgenden HTTP-Antwort-Header ist vorhanden: Cache-Control, Surrogate-Control oder Expires
  • Die HTTP-Antwort kann alle Inhaltstypen umfassen, einschließlich HTML-, JSON-, CSS-, JS- und Binärdateien.

Standardmäßig werden HTTP-Antwort-Cache-Header aus allen HTTP-Antworten, die nicht automatisch durch AEM Dispatcher zwischengespeichert werden, gelöscht, um eine Zwischenspeicherung im CDN zu vermeiden. Dieses Verhalten kann bei Bedarf mit der Option mod_headers und der Richtlinie Header always set ... vorsichtig überschrieben werden.

Was wird zwischengespeichert?

Das AEM as a Cloud Service CDN speichert Folgendes zwischen:

  • HTTP-Antworttext
  • HTTP-Antwort-Header

In der Regel wird eine HTTP-Anfrage/-Antwort für eine einzelne URL als einzelnes Objekt zwischengespeichert. Das CDN kann jedoch mehrere Objekte für eine einzelne URL zwischenspeichern, wenn der Vary-Header in der HTTP-Antwort festgelegt ist. Vermeiden Sie Vary in Headern, deren Werte keinen streng kontrollierten Wertesatz aufweisen, da dies zu vielen Cache-Fehlern führen kann, wodurch das Cache-Trefferverhältnis verringert wird. Um die Zwischenspeicherung verschiedener Anforderungen in AEM Dispatcher zu unterstützen, lesen Sie die Dokumentation zur Variantenzwischenspeicherung.

Cache-Lebensdauer cdn-cache-life

Das AEM Publish-CDN basiert auf TTL (Time-to-Live), d. h. die Cache-Lebensdauer wird durch die Cache-Control, Surrogate-Controloder Expires HTTP-Antwortheader bestimmt. Wenn die Header für die HTTP-Antwort-Zwischenspeicherung nicht vom Projekt festgelegt werden und die Eignungskriterien erfüllt sind, legt Adobe eine standardmäßige Cache-Lebensdauer von 10 Minuten (600 Sekunden) fest.

So beeinflussen die Cache-Header die Lebensdauer des CDN-Cache:

  • Cache-Control Der HTTP-Antwort-Header gibt dem Webbrowser und dem CDN vor, wie lange die Antwort zwischengespeichert werden soll. Der Wert wird in Sekunden angegeben. Zum Beispiel weist Cache-Control: max-age=3600 den Webbrowser an, die Antwort eine Stunde lang zwischenzuspeichern. Dieser Wert wird vom CDN ignoriert, wenn der Surrogate-Control HTTP-Antwort-Header ebenfalls vorhanden ist.
  • Surrogate-Control Der HTTP-Antwort-Header gibt dem AEM CDN vor, wie lange die Antwort zwischengespeichert werden soll. Der Wert wird in Sekunden angegeben. Zum Beispiel weist Surrogate-Control: max-age=3600 das CDN an, die Antwort eine Stunde lang zwischenzuspeichern.
  • Expires Der HTTP-Antwort-Header gibt dem AEM CDN (und dem Webbrowser) vor, wie lange die zwischengespeicherte Antwort gültig ist. Der Wert ist ein Datum. Zum Beispiel weist Expires: Sat, 16 Sept 2023 09:00:00 EST den Webbrowser an, die Antwort bis zum angegebenen Datum und zur angegebenen Uhrzeit zwischenzuspeichern.

Steuern Sie die Cache-Lebensdauer mit Cache-Control, wenn sie für Browser und CDN gleich ist. Verwenden Sie Surrogate-Control, wenn der Webbrowser die Antwort für eine andere Dauer als das CDN zwischenspeichern soll.

Standardmäßige Cache-Lebensdauer

Wenn eine HTTP-Antwort für eine AEM Dispatcher-Zwischenspeicherung nach den oben genannten Qualifikatoren geeignet ist, gelten folgende Standardwerte, sofern keine benutzerdefinierte Konfiguration vorhanden ist.

Inhaltstyp
Standardmäßige CDN-Cache-Lebensdauer
HTML/JSON/XML
5 Minuten
Assets (Bilder, Videos, Dokumente usw.)
10 Minuten
Persistierte Anfragen (JSON)
2 Stunden
Client-Bibliotheken (JS/CSS)
30 Tage
Andere
Nicht zwischengespeichert

So passen Sie Cache-Regeln an

Die Konfiguration der Zwischenspeicherung von Inhalten durch das CDN ist auf das Festlegen von Cache-Headern für HTTP-Antworten beschränkt. Diese Cache-Header werden normalerweise in AEM Dispatcher vhost Konfigurationen mithilfe von mod_headers festgelegt, können aber auch in benutzerdefiniertem Java™-Code festgelegt werden, der in AEM Publish selbst ausgeführt wird.

AEM Dispatcher

AEM Publish AEM Dispatcher

Wann werden HTTP-Anfragen/-Antworten zwischengespeichert?

HTTP-Antworten für entsprechende HTTP-Anforderungen werden zwischengespeichert, wenn alle folgenden Kriterien erfüllt sind:

  • Die HTTP-Anfragemethode ist GET oder HEAD

    • HEAD Die HTTP-Anfragen speichern nur die HTTP-Antwort-Header. Sie enthalten keinen Antworttext.
  • Der HTTP-Antwortstatus ist 200

  • Die HTTP-Antwort ist NICHT für eine Binärdatei.

  • Der URL-Pfad der HTTP-Anfrage endet mit einer Erweiterung, z. B. .html, .json, .css, .js, usw.

  • HTTP-Anfragen enthalten keine Autorisierung und werden nicht von AEM authentifiziert.

  • Die HTTP-Anfrage enthält keine Anfrageparameter.

    • Wenn Sie jedoch Ignorierte Abfrageparameter konfigurieren, können HTTP-Anfragen, die die ignorierten Anfrageparameter enthalten, im Cache zwischengespeichert/bereitgestellt werden.
  • Der Pfad der HTTP-Anfrage entspricht einer Dispatcher-Zulassungsregel und stimmt nicht mit einer Ablehnungsregel überein.

  • Die HTTP-Antwort verfügt über keine der folgenden durch AEM Publish festgelegten HTTP-Antwort-Header:

    • no-cache
    • no-store
    • must-revalidate

Was wird zwischengespeichert?

AEM Dispatcher speichert Folgendes zwischen:

  • HTTP-Antworttext

  • HTTP-Antwort-Header, die in der Cache-Header-Konfiguration des Dispatchers angegeben sind. Siehe die Standardkonfiguration, die mit dem AEM-Projektarchetyp bereitgestellt wird.

    • Cache-Control
    • Content-Disposition
    • Content-Type
    • Expires
    • Last-Modified
    • X-Content-Type-Options

Cache-Lebensdauer

AEM Dispatcher speichert HTTP-Antworten mithilfe folgender Vorgehensweisen zwischen:

Standardmäßige Cache-Lebensdauer

Wenn eine HTTP-Antwort für eine AEM Dispatcher-Zwischenspeicherung nach den oben genannten Qualifikatoren geeignet ist, gelten folgende Standardwerte, sofern keine benutzerdefinierte Konfiguration vorhanden ist.

Inhaltstyp
Standardmäßige CDN-Cache-Lebensdauer
HTML/JSON/XML
Bis zur Invalidierung
Assets (Bilder, Videos, Dokumente usw.)
Nie
Persistierte Anfragen (JSON)
1 Minute
Client-Bibliotheken (JS/CSS)
30 Tage
Andere
Bis zur Invalidierung

So passen Sie Cache-Regeln an

Der Cache des AEM Dispatchers kann über die Dispatcher-Konfiguration konfiguriert werden, einschließlich:

  • Was zwischengespeichert wird
  • Welche Teile des Zwischenspeichers bei der Veröffentlichung/Aufhebung der Veröffentlichung invalidiert werden
  • Welche HTTP-Anfrageparameter bei der Auswertung des Zwischenspeichers ignoriert werden
  • Welche HTTP-Antwort-Header zwischengespeichert werden
  • Aktivieren oder Deaktivieren der TTL-Zwischenspeicherung
  • … und vieles mehr

Wenn Sie die Cache-Header mit mod_headers festlegen, hat die vhost-Konfiguration keine Auswirkungen auf die Dispatcher-Zwischenspeicherung (TTL-basiert), da sie erst zur HTTP-Antwort hinzugefügt werden, nachdem AEM Dispatcher die Antwort verarbeitet hat. Um die Dispatcher-Zwischenspeicherung über HTTP-Antwort-Header zu beeinflussen, ist ein benutzerdefinierter Java™-Code erforderlich, der in AEM Publish ausgeführt wird und die entsprechenden HTTP-Antwort-Header festlegt.

recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69