Problem

Wenn Sie Inhalte auf Ihrer AEM-Site aktivieren, werden die Änderungen in den Veröffentlichungsinstanzen angezeigt, nicht jedoch auf der tatsächlichen Website.

Ursache

Dies kann, je nach Architektur, viele Ursachen haben.

Die Ursachen können sein:

  • Sie verwenden ein CDN
    • Falsche TTL-Einstellungen
    • Falsche oder fehlende Cache-bezogene Header (Cache-Control, Pragma Expires)
  • Der Dispatcher oder der Webserver ist fehlerhaft oder falsch konfiguriert

Lösung

Der erste Schritt beim Debuggen eines solchen Problems besteht darin, das Problem zu isolieren. Wir wissen bereits, dass die AEM-Veröffentlichungsinstanzen mit den Aktivierungen aktualisiert werden. Das Problem muss daher im Upstream-Web-Stack mit dem CDN- und Web Server / Dispatcher-Cache liegen.

I. Überprüfen Sie die Webserver / Dispatcher, um festzustellen, ob der Inhalt veraltet ist

 

  1. Wenn der Inhalt der Dispatcher nicht veraltet ist, liegt das Problem entweder bei den CDN TTL-Konfigurationen oder den Kopfzeilen, die von Dispatcher und AEM gesendet werden.  Folgen Sie dem Abschnitt "II. CDN-Probleme" unten für eine Anleitung.

  2. Wenn die Dispatcher abgelaufenen Inhalt enthalten, ist etwas entweder falsch konfiguriert oder etwas führt dazu, dass einer der Dispatcher nicht richtig arbeitet.  Folgen Sie Abschnitt "IV. Dispatcher-Zwischenspeicher-Probleme" für eine Anleitung.

II. CDN-Probleme

Wenn Inhalt auf dem CDN abgelaufen ist, können Sie Folgendes versuchen:

  1. Melden Sie sich bei der CDN Management-Schnittstelle an und überprüfen Sie die TTL-Konfigurationen. Wenn TTLs in der CDN-Konfiguration festgelegt sind, stellen Sie sicher, dass sie nicht zu hoch eingestellt sind.

  2. Greifen Sie direkt über den Dispatcher auf den Inhalt zu und überprüfen Sie, ob dem Zwischenspeicher zugeordnete HTTP-Kopfzeilen wie Cache-Control: max-age, Expires und Praage vorhanden sind. Zum Beispiel http://dispatcher-host1/content/geometrixx/en.html

  3. Testen Sie den Dispatcher durch Hinzufügen eines Querystrings in der URL, z. B. http://dispatcher-host1/content/geometrixx/en.html?bypasscache=1. Überprüfen Sie auch die Cache-bezogenen Header für diese Antwort.  Die Header können sich von denen unterscheiden, die von einer zwischengespeicherten Antwort zurückgegeben werden. Beachten Sie, dass nach einem Dispatcher-Cache Flush die erste HTTP-Antwort die gleiche ist wie beim Umgehen des Dispatchers. Aus diesem Grund würden einige CDN-Edge-Server die umgangene Antwort erhalten und andere die gecachte Antwort vom Dispatcher.

Hinweis:

Wenn Cache-bezogene Header in der HTTP-Antwort weggelassen werden, werden einige CDNs wie Amazon Cloudfront die Antwort auf unbestimmte Zeit zwischenspeichern (sofern keine TTLs gesetzt sind). 

III. Flush Agent blockiert oder ist nicht konfiguriert

Wenn Sie festgestellt haben, dass das Problem nicht auf CDN-Ebene liegt, ist der nächste Schritt die Überprüfung der AEM-Flush-Agent-Konfigurationen.

Achten Sie darauf, dass Sie die Flush-Agenten konfiguriert und aktiviert sind.

Überprüfen Sie die Warteschlangen des Flush-Agenten, wenn die Flush-Aufträge bearbeitet werden oder sich in der Warteschlange befinden.

  1. 1. Der Flush-Agent befindet sich im blockierten Zustand.
    Wenn die Dispatcher-Flush-Agent-Seite die Meldung blockiert zeigt, kann es zu einem Netzwerkverbindungsproblem zwischen AEM und dem/den Dispatcher-Server(n) kommen.  Achten Sie darauf, dass alle AEM-Instanzen mit konfigurierten Flush-Agenten die Dispatcher-Server erreichen können. Ändern Sie bei Bedarf die Firewall-Regeln, um die Verbindung zwischen den Servern zu ermöglichen.

  2. 2. Der Flush-Agent befindet sich im aktiven Zustand mit vielen Aufträgen in der Warteschlange.
    Wenn der Agent die Meldung aktiv anzeigt, obwohl es viele Aufträge gibt, dann kann es folgende Probleme geben:
    a. Ein Fehler während des Flush-Vorgangs
    b. Der Webserver reagiert extrem langsam auf Anfragen
    c. Oder ein Problem mit der Auftragsbearbeitung des AEM

  3. 3. Der Flush-Agent befindet sich im aktiven Status und es sind keine Aufträge in der Warteschlange.
    Wenn der Agent den Status aktiv anzeigt, aber keine Aufträge in der Warteschlange sind, gibt der Webserver 200 Antworten zurück aber macht tatsächlich nichts.

IV. Dispatcher Cache-Probleme

  1. Testen Sie eine manuelle Dispatcher-Flush-Anforderung mit cURL

    Testen Sie eine Dispatcher-Flush-Anfrage mit cURL. Wenn Sie eine andere Antwort als 200 mit dem Antworttext „OK“ erhalten, wird der Dispatcher-Flush nicht vom Dispatcher-Modul verarbeitet. Befolgen Sie die folgenden Schritte, um es zu debuggen. 

    curl -v -H "CQ-Action: Activate" \ 
         -H "CQ-Handle: /content/bar" \ 
         -H "Content-Length: 0" \
         -H "Content-Type: application/octet-stream" \ 
         http://dispatcher-server-hostname:port/dispatcher/invalidate.cache
  2. Überprüfen Sie die Dispatcher-Konfiguration

    Überprüfen Sie die „allowedClients“

    Überprüfen Sie die Konfiguration /allowedClients Ihrer Dispatcher-Farmen, die in den Konfigurationen von „dispatcher.any“ konfiguriert sind. Stellen Sie sicher, dass die IP-Adresse aller AEM-Instanzen, von denen erwartet wird, dass sie Flush-Anfragen ausgeben, aufgelistet wird. 

  3. Überprüfen Sie den Webserver

Microsoft IIS:

A. Aktivieren Sie „Filterung anfordern“

  1. Melden Sie sich über RDP als Administrator bei dem IIS-Server an

  2. Öffnen Sie den Server Manager => Rollen => IIS Manager

  3. Blättern Sie im IIS Manager zu Ihrer AEM Dispatcher-aktivierten Seite

  4. Öffnen Sie Request-Filterung

  5. Stellen Sie sicher, dass die Filterkonfigurationen keine GET- und POST-Anfragen an /dispatcher/invalidate.cache blockieren.

Weitere Informationen zum Zugriff auf diese Konfigurationen und zum Ändern dieser Konfigurationen finden Sie in der Microsoft-Dokumentation.

B. Prüfen Sie die IIS Rewrite-Regeln

  1. Melden Sie sich über RDP als Administrator bei dem IIS-Server an

  2. Öffnen Sie den Server Manager => Rollen => IIS Manager

  3. Navigieren Sie im IIS-Manager hinunter zu Ihrer AEM-Dispatcher-fähigen Site

  4. Öffnen Sie URL Rewrite

  5. Überprüfen Sie die Regeln, um festzustellen, ob sie GET- oder POST-Anfragen an /dispatcher/invalidate.cache blockieren oder unterbrechen können

Weitere Informationen dazu, wie Sie auf diese Konfigurationen zugreifen und sie ändern können, finden Sie in der Microsoft-Dokumentation.

Apache-Webserver:

A. Überprüfen Sie die RewriteRule-Konfigurationen

Überprüfen Sie in Ihren httpd-Konfigurationen die RewriteRule-Direktiven und überprüfen Sie, ob GET- oder POST-Anforderungen an /dispatcher/invalidate.cache blockiert oder unterbrochen werden können.

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie