Wenn ich mehrere virtuelle Hosts mit separaten AEM-Dispatcher-Cache-Bereichen auf meinem Webserver konfiguriert habe, wie kann ich dann den korrekten Cache auf dem AEM-Server leeren?

Umgebung

Apache-HTTP-Server / AEM-Dispatcher

Schritte

Richten Sie einen Dispatcher-Lösch-Agent pro Dispatcher-Bereich ein. Legen Sie dann den Host-Header fest und konfigurieren Sie die „Agent-Benutzer-ID“ mit einem Benutzer, der Lesezugriff auf relevante Pfade hat.

In den untenstehenden Lösungen nehmen wir Folgendes an:

  • Sie verwenden Apache HTTP-Server 2.2 oder eine neuere Version
  • Mehrere VirtualHosts konfiguriert
  • Mehrere Dispatcher-Farmen mit separaten Caches

Beispiel:
Konfigurationen mit Apache-httpd-VirtualHost:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.geometrixx.com
    ServerAlias *.geometrixx.com
    DocumentRoot /var/www/html/cache-www-geometrixx-com
     ...  
</VirtualHost>

<VirtualHost *:80>
    ServerName www.geometrixx-outdoors.com
    ServerAlias *.geometrixx-outdoors.com
    DocumentRoot <Global Doc root>/site2
    Include <Configurations specific to site2>
</VirtualHost>
DocumentRoot /var/www/html/cache-www-geometrixx-outdoors-com

In der Dispatcher-Konfiguration haben Sie mehrere Farmen, die so konfiguriert sind, dass sie verschiedene Bereiche nach Hostnamen (virtualhosts) verwalten:

/virtualhosts
  {
      "*geometrixx.com*"
  }

  /renders
  {
        ...
  }

  /cache {
       /docroot "/var/www/html/cache-www-geometrixx-com"

Richten Sie mehrere Flush-Agenten ein.

Wenn Sie nur wenige separate Dispatcher-Farmen (5 oder weniger) haben, ist die Konfiguration mehrerer Flush-Programme eine einfache Lösung.

  1. Öffnen Sie http://aem-host:port/miscadmin für jede AEM-Veröffentlichungsinstanz.

  2. Navigieren Sie zu Replikation => Agenten auf Veröffentlichungsinstanz.

  3. Klicken Sie auf Bearbeiten.

  4. Geben Sie unter Agent-User-ID den Namen eines Benutzers ein, den Sie später erstellen und der diesem Agenten zugeordnet wäre.  Sie können eine Namenskonvention mit dem Hostnamen der Seite verwenden.  Zum Beispiel: „flush-agent-www-geometrixx-com“. 

  5. Wählen Sie die Registerkarte „Erweitert“ aus.

  6. Fügen Sie einen anderen Header unter HTTP-Header hinzu.  Geben Sie „Host: www.geometrixx.com“ ein, wobei „www.geometrixx.com“ durch einen der DNS-Hosts der Websites ersetzt werden sollte.

  7. Klicken Sie zum Speichern auf Ok.

  8. Gehen Sie zu http://aem-host:port/useradmin und erstellen Sie den Benutzer aus Schritt 4.

  9. Auf der Registerkarte Berechtigungen des Benutzers gewähren Sie dem Benutzer Lesezugriff auf alle Pfade, die der Agent für die referenzierte Seite freigeben soll.  Zum Beispiel: „/content/geometrixx, /content/dam, /etc, /libs, /apps, /var“.

  10. Speichern.

  11. Wiederholen Sie die Schritte 1 bis 10 für alle anderen Seiten in jeder Veröffentlichungsinstanz.  Sie erstellen einen Flush-Agenten für jede Seite in jeder Veröffentlichungsinstanz.

  12. Geben Sie auf dem Webserver gemeinsame Pfade mit „symlinks“ frei.  Zum Beispiel könnten Sie „symlinks“ für /content/dam, /etc, /libs, /apps und /var auf einen gemeinsamen Cache-Speicherort setzen.  Dann würde „/content“ und alles, was sich untergeordnet des Caches befindet, getrennt zwischengespeichert.  Ein Beispielbefehl für den Ordner „/libs“: 

    ln -s /var/www/html/cache-www-geometrixx-com/libs /var/www/html/shared-cache

  13. Wenn Sie jetzt Seiten unter einer bestimmten Site aktivieren, wird die Löschungsanforderung nur an den entsprechenden Flush-Agenten weitergeleitet.