Dispatcher-vhost-Konfiguration
Diese Option wird zum Aktivieren des Cachings empfohlen, allerdings ist sie nur für AEM Publish verfügbar. Um die Cache-Header zu aktualisieren, verwenden Sie das Modul mod_headers
und die Anweisung <LocationMatch>
in der vhost-Datei des Apache HTTP-Servers. Die allgemeine Syntax lautet folgendermaßen:
<LocationMatch "$URL$ || $URL_REGEX$">
# Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed.
Header unset Cache-Control
Header unset Surrogate-Control
Header unset Expires
# Instructs the web browser and CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
Header set Cache-Control "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX"
# Instructs the CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
Header set Surrogate-Control "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX"
# Instructs the web browser and CDN to cache the response until the specified date and time.
Header set Expires "Sun, 31 Dec 2023 23:59:59 GMT"
</LocationMatch>
Im Folgenden ist der Zweck der einzelnen Header und entsprechenden Attribute für den Header zusammengefasst.
Webbrowser | CDN | Beschreibung | |
---|---|---|---|
Cache-Control | ✔ | ✔ | Dieser Header steuert die Webbrowser- und CDN-Cache-Lebensdauer. |
Surrogate-Control | ✘ | ✔ | Dieser Header steuert die CDN-Cache-Lebensdauer. |
Ablaufdatum | ✔ | ✔ | Dieser Header steuert die Webbrowser- und CDN-Cache-Lebensdauer. |
- max-age: Dieses Attribut steuert die Gültigkeitsdauer (Time to Live, TTL) des Antwortinhalts in Sekunden.
- stale-while-revalidate: Dieses Attribut steuert, wie Antwortinhalt im Status „Veraltet“ auf CDN-Ebene gehandhabt wird, wenn die empfangene Anfrage innerhalb des festgelegten Zeitraums in Sekunden liegt. Der Status „Veraltet“ tritt in dem Zeitraum auf, nachdem die TTL abgelaufen ist, aber bevor die Antwort erneut validiert wird.
- stale-if-error: Dieses Attribut steuert, wie Antwortinhalt im Status „Veraltet“ auf CDN-Ebene gehandhabt wird, wenn der Ursprungs-Server nicht verfügbar ist und die empfangene Anfrage innerhalb des festgelegten Zeitraums in Sekunden liegt.
Weitere Informationen finden Sie unter Veraltung und erneute Validierung.
Beispiel
Gehen Sie wie folgt vor, um die Webbrowser- und CDN-Cache-Lebensdauer des HTML-Content-Typs auf 10 Minuten zu verlängern, ohne dass er als veraltet gilt:
-
Suchen Sie in Ihrem AEM-Projekt im Verzeichnis
dispatcher/src/conf.d/available_vhosts
die gewünschte vhost-Datei. -
Aktualisieren Sie die vhost-Datei (z. B.
wknd.vhost
) wie folgt:<LocationMatch "^/content/.*\.(html)$"> # Removes the response header if present Header unset Cache-Control # Instructs the web browser and CDN to cache the response for max-age value (600) seconds. Header set Cache-Control "max-age=600" </LocationMatch>
Die vhost-Dateien im Verzeichnis
dispatcher/src/conf.d/enabled_vhosts
sind Symlinks zu den Dateien im Verzeichnisdispatcher/src/conf.d/available_vhosts
. Stellen Sie daher sicher, dass Sie Symlinks erstellen, falls diese nicht vorhanden sind. -
Stellen Sie die vhost-Änderungen in der gewünschten AEM as a Cloud Service-Umgebung bereit. Verwenden Sie dazu die Web-Stufen-Konfigurations-Pipeline von Cloud Manager oder RDE-Befehle.
Wenn Sie jedoch unterschiedliche Werte für die Lebensdauer des Webbrowsers und des CDN-Caches haben möchten, können Sie den Header Surrogate-Control
im oben genannten Beispiel verwenden. Soll der Cache an einem bestimmten Datum und zu einer bestimmten Uhrzeit ablaufen, können Sie auch den Header Expires
verwenden. Außerdem können Sie mit den Attributen stale-while-revalidate
und stale-if-error
steuern, wie Antwortinhalt im Status „Veraltet“ gehandhabt wird. Das AEM-WKND-Projekt nutzt eine CDN-Cache-Konfiguration mit einer Referenz für den Status „Veraltet“.
Entsprechend können Sie die Cache-Header auch für andere Inhaltstypen (JSON, JS, CSS und Assets) aktualisieren.