Die Apache- und Dispatcher-Konfiguration in AEM as a Cloud Service ähnelt der AMS-Konfiguration. Die Hauptunterschiede sind:
Listen
oder LogLevel
).filters/filters.any
abgelegt werden. Weitere Informationen finden Sie auf der Referenzseite./glob
geschrieben wurden. Dies dient der Vermeidung von Sicherheitsproblemen. Da deny *
verwendet wird anstelle von allow *
(was nicht verwendet werden kann), profitieren Kunden von einer lokalen Ausführung von Dispatcher und der Möglichkeit zum Ausprobieren: Sie können sich die Protokolle ansehen, um genau zu erfahren, welche Pfade die Dispatcher-Filter blockieren, damit sich diese hinzufügen lassen.Die Konfigurationsstruktur von Dispatcher unterscheidet sich bei Managed Services und AEM as a Cloud Service. Nachfolgend finden Sie eine schrittweise Anleitung zur Migration von der AMS Dispatcher-Konfiguration Version 2 zu AEM as a Cloud Service.
Im folgenden Abschnitt finden Sie eine schrittweise Anleitung zum Konvertieren einer AMS-Konfiguration. Es wird davon ausgegangen, dass Sie über ein Archiv mit einer Struktur verfügen, die der in der Cloud Manager-Dispatcher-Konfiguration beschriebenen ähnelt.
Extrahieren Sie das Archiv in einen Ordner und stellen Sie sicher, dass die unmittelbaren Unterordner mit conf
, conf.d
, conf.dispatcher.d
und conf.modules.d
beginnen. Wenn nicht, verschieben Sie sie in der Hierarchie nach oben.
Entfernen Sie die Unterordner conf
und conf.modules.d
sowie Dateien, die mit conf.d/*.conf
übereinstimmen.
Entfernen Sie alle Virtual-Host-Dateien in conf.d/enabled_vhosts
, die author
, unhealthy
, health
, lc
oder flush
im Namen tragen. Alle Virtual-Host-Dateien in conf.d/available_vhosts
, die nicht verknüpft sind, können ebenfalls entfernt werden.
Wenn Sie in Ihren Virtual-Host-Dateien immer noch über Abschnitte verfügen, die sich ausschließlich auf andere Ports als Port 80 beziehen, z. B:
<VirtualHost *:443>
...
</VirtualHost>
, entfernen oder kommentieren Sie diese. Anweisungen in diesen Abschnitten werden nicht verarbeitet; wenn Sie sie jedoch beibehalten, bearbeiten Sie sie am Ende doch noch – ohne Auswirkungen. Das kann verwirrend sein.
Rufen Sie Verzeichnis conf.d/rewrites
auf.
Entfernen Sie alle Dateien mit Namen base_rewrite.rules
und xforwarded_forcessl_rewrite.rules
und denken Sie daran, Include
-Anweisungen in den Virtual-Host-Dateien, die auf sie verweisen, zu entfernen.
Wenn conf.d/rewrites
jetzt eine einzelne Datei enthält, sollte sie in rewrite.rules
umbenannt werden. Vergessen Sie nicht, die Include
-Anweisungen, die auf diese Datei verweisen, auch in den Virtual-Host-Dateien anzupassen.
Wenn der Ordner jedoch mehrere Virtual-Host-spezifische Dateien enthält, sollte deren Inhalt in die Include
-Anweisung kopiert werden, die in den Virtual-Host-Dateien auf sie verweist.
Rufen Sie Verzeichnis conf.d/variables
auf.
Entfernen Sie alle Dateien mit dem Namen ams_default.vars
und denken Sie daran, Include
-Anweisungen in den Virtual-Host-Dateien zu entfernen, die auf sie verweisen.
Wenn conf.d/variables
jetzt eine einzelne Datei enthält, sollte sie in custom.vars
umbenannt werden. Vergessen Sie nicht, die Include
-Anweisungen, die auf diese Datei verweisen, auch in den Virtual-Host-Dateien anzupassen.
Wenn der Ordner jedoch mehrere Virtual-Host-spezifische Dateien enthält, sollte deren Inhalt in die Include
-Anweisung kopiert werden, die in den Virtual-Host-Dateien auf sie verweist.
Entfernen Sie den Ordner conf.d/whitelists
und entfernen Sie Include
-Anweisungen in den Virtual-Host-Dateien, die auf eine Datei in diesem Unterordner verweisen.
In allen virtuellen Host-Dateien:
Benennen Sie PUBLISH_DOCROOT
in DOCROOT
um.
Entfernen Sie Abschnitte, die auf Variablen mit den Namen DISP_ID
, PUBLISH_FORCE_SSL
oder PUBLISH_WHITELIST_ENABLED
verweisen.
Führen Sie mit dem Unterbefehl httpd
den Dispatcher-Validator in Ihrem Verzeichnis aus:
$ validator httpd .
Wenn Fehler wegen fehlender include-Dateien auftreten, überprüfen Sie, ob diese Dateien korrekt umbenannt wurden.
Wenn Sie Apache-Anweisungen sehen, die nicht in der Zulassungsliste enthalten sind, entfernen Sie sie.
Entfernen Sie alle Farm-Dateien in conf.dispatcher.d/enabled_farms
, die im Namen author
, unhealthy
, health
, lc
oder flush
tragen. Alle Farm-Dateien in conf.dispatcher.d/available_farms
, die nicht verknüpft sind, können ebenfalls entfernt werden.
Alle Farmen in conf.d/enabled_farms
müssen nach dem Muster *.farm
umbenannt werden, sodass z. B. eine Farm-Datei namens customerX_farm.any
in customerX.farm
umbenannt werden sollte.
Rufen Sie Verzeichnis conf.dispatcher.d/cache
auf.
Entfernen Sie alle Dateien mit dem Präfix ams_
.
Wenn conf.dispatcher.d/cache
jetzt leer ist, kopieren Sie die Datei conf.dispatcher.d/cache/rules.any
aus der standardmäßigen Dispatcher-Konfiguration in diesen Ordner. Die standardmäßige Dispatcher-Konfiguration befindet sich im Ordner src
dieses SDK. Vergessen Sie nicht, auch die $include
-Anweisungen anzupassen, die auf die ams_*_cache.any
-Regeldateien in den Farm-Dateien verweisen.
Wenn conf.dispatcher.d/cache
stattdessen nun eine einzelne Datei mit dem Suffix _cache.any
enthält, sollte sie in rules.any
umbenannt werden. Vergessen Sie nicht, auch die $include
-Anweisungen anzupassen, die in den Farm-Dateien auf diese Datei verweisen.
Wenn der Ordner jedoch mehrere Farm-spezifische Dateien mit diesem Muster enthält, sollten deren Inhalte in die $include
-Anweisung kopiert werden, die in den Farm-Dateien auf sie verweist.
Entfernen Sie alle Dateien mit dem Suffix _invalidate_allowed.any
.
Kopieren Sie die Datei conf.dispatcher.d/cache/default_invalidate_any
aus der standardmäßigen Dispatcher-Konfiguration von AEM as a Cloud Service an diesen Speicherort.
Entfernen Sie in allen Farm-Dateien den gesamten Inhalt im Abschnitt cache/allowedClients
und ersetzen Sie ihn durch:
$include "../cache/default_invalidate.any"
Rufen Sie Verzeichnis conf.dispatcher.d/clientheaders
auf.
Entfernen Sie alle Dateien mit dem Präfix ams_
.
Wenn conf.dispatcher.d/clientheaders
jetzt eine einzelne Datei mit dem Suffix _clientheaders.any
enthält, sollte sie in clientheaders.any
umbenannt werden. Vergessen Sie nicht, auch die $include
-Anweisungen anzupassen, die in den Farm-Dateien auf diese Datei verweisen.
Wenn der Ordner jedoch mehrere Farm-spezifische Dateien mit diesem Muster enthält, sollten deren Inhalte in die $include
-Anweisung kopiert werden, die in den Farm-Dateien auf sie verweist.
Kopieren Sie die Datei conf.dispatcher/clientheaders/default_clientheaders.any
aus der standardmäßigen AEM as a Cloud Service-Dispatcher-Konfiguration an diesen Speicherort.
Ersetzen Sie in jeder Datei „clientheader include“-Anweisungen, die wie folgt aussehen:
$include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_publish_clientheaders.any"
$include "/etc/httpd/conf.dispatcher.d/clientheaders/ams_common_clientheaders.any"
durch die Anweisung:
$include "../clientheaders/default_clientheaders.any"
Rufen Sie Verzeichnis conf.dispatcher.d/filters
auf.
Entfernen Sie alle Dateien mit dem Präfix ams_
.
Wenn conf.dispatcher.d/filters
jetzt eine einzelne Datei enthält, sollte sie in filters.any
umbenannt werden. Vergessen Sie nicht, auch die $include
-Anweisungen anzupassen, die in den Farm-Dateien auf diese Datei verweisen.
Wenn der Ordner jedoch mehrere Farm-spezifische Dateien mit diesem Muster enthält, sollten deren Inhalte in die $include
-Anweisung kopiert werden, die in den Farm-Dateien auf sie verweist.
Kopieren Sie die Datei conf.dispatcher/filters/default_filters.any
aus der standardmäßigen AEM as a Cloud Service-Dispatcher-Konfiguration an diesen Speicherort.
Ersetzen Sie in jeder Farm-Datei alle „filter include“-Anweisungen, die wie folgt aussehen:
$include "/etc/httpd/conf.dispatcher.d/filters/ams_publish_filters.any"
durch die Anweisung:
$include "../filters/default_filters.any"
Rufen Sie Verzeichnis conf.dispatcher.d/renders
auf.
Entfernen Sie alle Dateien in diesem Ordner.
Kopieren Sie die Datei conf.dispatcher.d/renders/default_renders.any
aus der standardmäßigen AEM as a Cloud Service-Dispatcher-Konfiguration an diesen Speicherort.
Entfernen Sie in allen Farm-Dateien den gesamten Inhalt im Abschnitt renders
und ersetzen Sie ihn durch:
$include "../renders/default_renders.any"
Benennen Sie das Verzeichnis conf.dispatcher.d/vhosts
um in conf.dispatcher.d/virtualhosts
und geben Sie es ein.
Entfernen Sie alle Dateien mit dem Präfix ams_
.
Wenn conf.dispatcher.d/virtualhosts
jetzt eine einzelne Datei enthält, sollte sie in virtualhosts.any
umbenannt werden. Vergessen Sie nicht, auch die $include
-Anweisungen anzupassen, die in den Farm-Dateien auf diese Datei verweisen.
Wenn der Ordner jedoch mehrere Farm-spezifische Dateien mit diesem Muster enthält, sollten deren Inhalte in die $include
-Anweisung kopiert werden, die in den Farm-Dateien auf sie verweist.
Kopieren Sie die Datei conf.dispatcher/virtualhosts/default_virtualhosts.any
aus der standardmäßigen AEM as a Cloud Service-Dispatcher-Konfiguration an diesen Speicherort.
Ersetzen Sie in jeder Farm-Datei alle „filter include“-Anweisungen, die wie folgt aussehen:
$include "/etc/httpd/conf.dispatcher.d/vhosts/ams_publish_vhosts.any"
durch die Anweisung:
$include "../virtualhosts/default_virtualhosts.any"
Führen Sie mit dem dispatcher
-Unterbefehl den AEM as a Cloud Service-Dispatcher-Validator in Ihrem Verzeichnis aus:
$ validator dispatcher .
Wenn Fehler wegen fehlender include-Dateien auftreten, überprüfen Sie, ob diese Dateien korrekt umbenannt wurden.
Wenn Fehler wegen einer nicht definierten Variable PUBLISH_DOCROOT
auftreten, benennen Sie diese in DOCROOT
um.
Weitere Informationen zu anderen Fehlern finden Sie im Abschnitt „Fehlerbehebung“ in der Dokumentation des Validator-Tools.
Mithilfe des Skripts docker_run.sh
in den AEM as a Cloud Service-Dispatcher Tools können Sie testen, ob Ihre Konfiguration keine andere Fehler aufweist, die sich erst bei der Bereitstellung zeigen würden:
validator full -d out .
Dadurch wird die vollständige Konfiguration validiert und werden in out
Bereitstellungsinformationen generiert.
Wenn Ihr AEM-Publishing-Server auf Ihrem macOS-Computer ausgeführt und Port 4503 überwacht wird, können Sie Dispatcher wie folgt vor diesem Server starten:
$ docker_run.sh out docker.for.mac.localhost:4503 8080
Dadurch wird der Container gestartet und Apache am lokalen Port 8080 verfügbar gemacht.
Herzlichen Glückwunsch! Wenn der Validator kein Problem mehr meldet und der Docker-Container ohne Fehler oder Warnungen gestartet wird, können Sie Ihre Konfiguration in ein dispatcher/src
-Unterverzeichnis Ihres Git-Repositorys verschieben.
Kunden, die die AMS-Dispatcher-Konfiguration Version 1 verwenden, sollten sich an den Support wenden, um sich bei der Migration von Version 1 zu Version 2 helfen zu lassen, sodass die oben stehenden Anweisungen befolgt werden.