Experience Manager
In diesem Dokument wird beschrieben, welche Dateien gesperrt und nicht geändert werden und wie Sie die gewünschten Konfigurationseinstellungen ordnungsgemäß vornehmen.
Wenn Adobe Managed Services (AMS) ein System bereitstellt, führen sie eine Basiskonfiguration ein, die alles funktionsfähig und sicher macht. Dies sind Dinge, die AMS sicherstellen möchte, dass sie als Grundlage für Funktionalität und Sicherheit erhalten bleiben. Um dies zu erreichen, werden einige Dateien als schreibgeschützt und unveränderlich markiert, um eine Änderung zu vermeiden.
Das Layout hindert Sie nicht daran, ihr Verhalten zu ändern und erforderliche Änderungen zu überschreiben. Anstatt diese Dateien zu ändern, überlagern Sie Ihre eigene Datei, die das Original ersetzt.
Auf diese Weise können Sie sich auch sicher sein, dass die Dispatcher beim Patchen der neuesten Fehlerbehebungen und Sicherheitsverbesserungen durch AMS Ihre Dateien nicht verändern. Dann können Sie weiterhin von den Verbesserungen profitieren und nur die gewünschten Änderungen übernehmen.
Wie im obigen Bild gezeigt, halten unveränderliche Dateien Sie nicht davon ab, das Spiel zu spielen. Sie halten Sie einfach davon ab, Ihre Leistung zu beeinträchtigen und halten Sie auf der Spur. Diese Methode ermöglicht uns die wenigen wichtigsten Funktionen:
Im Folgenden finden Sie eine typische Liste der Dateien, die mit einem Dispatcher bereitgestellt werden:
/etc/httpd/
├── conf
│ └── httpd.conf
├── conf.d
│ ├── available_vhosts
│ │ ├── 000_unhealthy_author.vhost
│ │ ├── 000_unhealthy_publish.vhost
│ │ ├── aem_author.vhost
│ │ ├── aem_flush.vhost
│ │ ├── aem_health.vhost
│ │ ├── aem_lc.vhost
│ │ └── aem_publish.vhost
│ ├── dispatcher_vhost.conf
│ ├── enabled_vhosts
│ │ ├── aem_author.vhost -> /etc/httpd/conf.d/available_vhosts/aem_author.vhost
│ │ ├── aem_flush.vhost -> /etc/httpd/conf.d/available_vhosts/aem_flush.vhost
│ │ ├── aem_health.vhost -> /etc/httpd/conf.d/available_vhosts/aem_health.vhost
│ │ └── aem_publish.vhost -> /etc/httpd/conf.d/available_vhosts/aem_publish.vhost
│ ├── logformat.conf
│ ├── remoteip.conf
│ ├── rewrites
│ │ ├── base_rewrite.rules
│ │ └── xforwarded_forcessl_rewrite.rules
│ ├── security.conf
│ ├── variables
│ │ └── ams_default.vars
│ └── whitelists
│ └── 000_base_whitelist.rules
├── conf.dispatcher.d
│ ├── available_farms
│ │ ├── 000_ams_author_farm.any
│ │ ├── 001_ams_lc_farm.any
│ │ └── 999_ams_publish_farm.any
│ ├── cache
│ │ ├── ams_author_cache.any
│ │ ├── ams_author_invalidate_allowed.any
│ │ ├── ams_publish_cache.any
│ │ └── ams_publish_invalidate_allowed.any
│ ├── clientheaders
│ │ ├── ams_author_clientheaders.any
│ │ ├── ams_common_clientheaders.any
│ │ ├── ams_lc_clientheaders.any
│ │ └── ams_publish_clientheaders.any
│ ├── dispatcher.any
│ ├── enabled_farms
│ │ ├── 000_ams_author_farm.any -> /etc/httpd/conf.dispatcher.d/available_farms/000_ams_author_farm.any
│ │ └── 999_ams_publish_farm.any -> /etc/httpd/conf.dispatcher.d/available_farms/999_ams_publish_farm.any
│ ├── filters
│ │ ├── ams_author_filters.any
│ │ ├── ams_lc_filters.any
│ │ └── ams_publish_filters.any
│ ├── renders
│ │ ├── ams_author_renders.any
│ │ ├── ams_lc_renders.any
│ │ └── ams_publish_renders.any
│ └── vhosts
│ ├── ams_author_vhosts.any
│ ├── ams_lc_vhosts.any
│ └── ams_publish_vhosts.any
├── conf.modules.d
│ ├── 01-cgi.conf
│ └── 02-dispatcher.conf
└── modules -> ../../usr/lib64/httpd/modules
└── mod_dispatcher.so
Um festzustellen, welche Dateien unveränderlich sind, können Sie den folgenden Befehl auf einem Dispatcher ausführen, um ihn anzuzeigen:
$ lsattr -Rl /etc/httpd 2 > /dev/null | grep Immutable
Im Folgenden finden Sie eine Beispielantwort mit unveränderlichen Dateien:
/etc/httpd/conf/httpd.conf Immutable
/etc/httpd/conf.d/available_vhosts/aem_author.vhost Immutable
/etc/httpd/conf.d/available_vhosts/aem_publish.vhost Immutable
/etc/httpd/conf.d/available_vhosts/aem_lc.vhost Immutable
/etc/httpd/conf.d/available_vhosts/aem_flush.vhost Immutable
/etc/httpd/conf.d/available_vhosts/aem_health.vhost Immutable
/etc/httpd/conf.d/available_vhosts/000_unhealthy_author.vhost Immutable
/etc/httpd/conf.d/available_vhosts/000_unhealthy_publish.vhost Immutable
/etc/httpd/conf.d/rewrites/base_rewrite.rules Immutable
/etc/httpd/conf.d/rewrites/xforwarded_forcessl_rewrite.rules Immutable
/etc/httpd/conf.d/whitelists/000_base_whitelist.rules Immutable
/etc/httpd/conf.d/dispatcher_vhost.conf Immutable
/etc/httpd/conf.d/logformat.conf Immutable
/etc/httpd/conf.d/security.conf Immutable
/etc/httpd/conf.modules.d/02-dispatcher.conf Immutable
/etc/httpd/conf.dispatcher.d/available_farms/000_ams_author_farm.any Immutable
/etc/httpd/conf.dispatcher.d/available_farms/999_ams_publish_farm.any Immutable
/etc/httpd/conf.dispatcher.d/available_farms/001_ams_lc_farm.any Immutable
/etc/httpd/conf.dispatcher.d/cache/ams_author_cache.any Immutable
/etc/httpd/conf.dispatcher.d/cache/ams_author_invalidate_allowed.any Immutable
/etc/httpd/conf.dispatcher.d/cache/ams_publish_cache.any Immutable
/etc/httpd/conf.dispatcher.d/cache/ams_publish_invalidate_allowed.any Immutable
/etc/httpd/conf.dispatcher.d/clientheaders/ams_author_clientheaders.any Immutable
/etc/httpd/conf.dispatcher.d/clientheaders/ams_publish_clientheaders.any Immutable
/etc/httpd/conf.dispatcher.d/clientheaders/ams_common_clientheaders.any Immutable
/etc/httpd/conf.dispatcher.d/clientheaders/ams_lc_clientheaders.any Immutable
/etc/httpd/conf.dispatcher.d/filters/ams_author_filters.any Immutable
/etc/httpd/conf.dispatcher.d/filters/ams_publish_filters.any Immutable
/etc/httpd/conf.dispatcher.d/filters/ams_lc_filters.any Immutable
/etc/httpd/conf.dispatcher.d/renders/ams_author_renders.any Immutable
/etc/httpd/conf.dispatcher.d/renders/ams_publish_renders.any Immutable
/etc/httpd/conf.dispatcher.d/renders/ams_lc_renders.any Immutable
/etc/httpd/conf.dispatcher.d/vhosts/ams_author_vhosts.any Immutable
/etc/httpd/conf.dispatcher.d/vhosts/ams_publish_vhosts.any Immutable
/etc/httpd/conf.dispatcher.d/vhosts/ams_lc_vhosts.any Immutable
/etc/httpd/conf.dispatcher.d/dispatcher.any Immutable
Wie kann ich Änderungen vornehmen?
Variablen ermöglichen es Ihnen, funktionale Änderungen vorzunehmen, ohne die Konfigurationsdateien selbst zu ändern. Bestimmte Elemente der Konfiguration können mit der Anpassung der Variablenwerte angepasst werden. Ein Beispiel, das wir aus der Datei /etc/httpd/conf.d/dispatcher_vhost.conf hervorheben können, finden Sie hier:
Include /etc/httpd/conf.d/variables/ams_default.vars
`<` IfModule disp_apache2.c`>`
DispatcherConfig conf.dispatcher.d/dispatcher.any
DispatcherLog logs/dispatcher.log
DispatcherLogLevel ${DISP_LOG_LEVEL}
DispatcherDeclineRoot 0
DispatcherUseProcessedURL 1
`<` /IfModule`>`
Erfahren Sie, wie die DispatcherLogLevel-Direktive eine Variable von DISP_LOG_LEVEL anstelle des dort angezeigten Normalwerts aufweist. Oberhalb dieses Codeabschnitts wird auch eine Include-Anweisung für eine Variablendatei angezeigt. In der Variablendatei /etc/httpd/conf.d/variables/ams_default.vars möchten wir als Nächstes nachschlagen. Im Folgenden finden Sie den Inhalt dieser Variablendatei:
Define DISP_LOG_LEVEL info
Define AUTHOR_WHITELIST_ENABLED 0
Define PUBLISH_WHITELIST_ENABLED 0
Define LIVECYCLE_WHITELIST_ENABLED 0
Define AUTHOR_FORCE_SSL 1
Define PUBLISH_FORCE_SSL 0
Define LIVECYCLE_FORCE_SSL 1
Sie sehen oben, dass der aktuelle Wert der Variablen "DISP_LOG_LEVEL""info"ist. Wir können diese Einstellung anpassen, um die Werte oder Ebenen Ihrer Wahl zu verfolgen oder zu debuggen. Überall, wo die Protokollebene gesteuert wird, wird sie automatisch angepasst.
Verstehen Sie die Include-Dateien der obersten Ebene, da Sie damit Ihre Anpassungen vornehmen können. Zunächst ein einfaches Beispiel: Wir haben ein Szenario, in dem wir einen neuen Domänennamen hinzufügen möchten, auf den wir diesen Dispatcher verweisen möchten. Das Domänenbeispiel, das wir verwenden werden is we-retail.adobe.com. Kopieren Sie zunächst eine vorhandene Konfigurationsdatei in eine neue, in der wir unsere Änderungen hinzufügen können:
$ cp /etc/httpd/conf.d/available_vhosts/aem_publish.vhost /etc/httpd/conf.d/available_vhosts/weretail_publish.vhost
Wir haben die vorhandene Datei aem_publish.vhost kopiert, da sie bereits das enthält, was wir benötigen, um Dinge zum Laufen zu bringen, und wir möchten keinen bereits starken Start neu erfinden. Jetzt bearbeiten wir die neue Datei weretail.vhost und nehmen die erforderlichen Änderungen vor.
Vorher:
`<` VirtualHost *:80`>`
ServerName publish
ServerAlias ${PUBLISH_DEFAULT_HOSTNAME}
DocumentRoot ${PUBLISH_DOCROOT}
`<` IfModule mod_headers.c`>`
Header always add X-Dispatcher ${DISP_ID}
Header always add X-Vhost "publish"
Header merge X-Frame-Options SAMEORIGIN "expr=%{resp:X-Frame-Options}!='SAMEORIGIN'"
Header merge X-Content-Type-Options nosniff "expr=%{resp:X-Content-Type-Options}!='nosniff'"
Header append Vary User-Agent env=!dont-vary
`<` /IfModule`>`
....... SNIP.......
`<` /VirtualHost`>`
Nachher:
`<` VirtualHost *:80`>`
ServerName weretail-publish
ServerAlias we-retail.adobe.com
DocumentRoot ${PUBLISH_DOCROOT}
`<` IfModule mod_headers.c`>`
Header always add X-Dispatcher ${DISP_ID}
Header always add X-Vhost "werteail-publish"
Header merge X-Frame-Options SAMEORIGIN "expr=%{resp:X-Frame-Options}!='SAMEORIGIN'"
Header merge X-Content-Type-Options nosniff "expr=%{resp:X-Content-Type-Options}!='nosniff'"
Header append Vary User-Agent env=!dont-vary
`<` /IfModule`>`
....... SNIP.......
`<` /VirtualHost`>`
Jetzt haben wir unseren ServerName und ServerAlias aktualisiert, um den neuen Domänennamen zu entsprechen und auch andere Breadcrumb-Header zu aktualisieren. Lassen Sie uns nun unsere neue Datei aktivieren, damit Apache wissen kann, wie sie unsere neue Datei verwenden kann:
$ cd /etc/httpd/conf.d/enabled_vhosts/; ln -s ../available_vhosts/weretail_publish.vhost .
Der Apache-Webserver weiß jetzt, dass die Domäne Traffic liefern sollte, aber wir müssen das Dispatcher-Modul dennoch darüber informieren, dass es einen neuen Domänennamen hat, den es berücksichtigen muss. Zunächst erstellen wir eine neue Datei *_vhost.any /etc/httpd/conf.dispatcher.d/vhosts/weretail_vhosts.any und in dieser Datei fügen wir den Domänennamen ein, den wir berücksichtigen möchten:
"we-retail.adobe.com"
Jetzt müssen wir eine neue Farm-Datei erstellen, die unsere neue vhost-Eintragsdatei verwendet, und wir beginnen mit dem Kopieren einer starken Start-Datei in unsere neue.
$ cp /etc/httpd/conf.dispatcher.d/available_farms/999_ams_publish_farm.any /etc/httpd/conf.dispatcher.d/available_farms/400_weretail_publish_farm.any
Zeigt die Änderungen an, die wir an dieser Farm-Datei vornehmen müssen
Vorher:
/publishfarm {
/virtualhosts {
$include "/etc/httpd/conf.dispatcher.d/vhosts/ams_publish_vhosts.any"
}
........SNIP.........
}
Nachher:
/weretailpublishfarm {
/virtualhosts {
$include "/etc/httpd/conf.dispatcher.d/vhosts/weretail_publish_vhosts.any"
}
........SNIP.........
}
Jetzt haben wir den Farm-Namen aktualisiert und die darin verwendete Include-Datei im Abschnitt /virtualhosts der Farm-Konfiguration hinzugefügt. Diese neue Farm-Datei muss aktiviert werden, damit sie in der laufenden Konfiguration verwendet werden kann:
$ cd /etc/httpd/conf.dispatcher.d/enabled_farms/; ln -s ../available_farms/400_weretail_publish_farm.any .
Jetzt laden wir einfach den Webserver-Dienst neu und nutzen unsere neue Domain!
Hinweis:
Beachten Sie, dass wir nur die Teile geändert haben, die wir ändern mussten, um die vorhandenen Includes und den Code zu nutzen, die mit den Basiskonfigurationsdateien geliefert wurden. Wir müssen nur auf das Element eingehen, das wir ändern müssen. Erleichtert die Arbeit und ermöglicht es uns, weniger Code zu verwalten