Grundlegendes Dateilayout für Adobe Managed Services (AMS)
Erfahren Sie mehr über die AMS-Standardkonfigurationsdatei und die Überlegungen hinter diesem Konfigurationsstandard in Adobe Experience Manager.
Beschreibung description
Umgebung
Adobe Experience Manager (AEM)
Problem/Symptome
In diesem Dokument werden der AMS-Standardkonfigurationsdateisatz und die Gedanken hinter diesem Konfigurationsstandard erläutert.
Lösung resolution
Standardmäßige Enterprise Linux-Ordnerstruktur
In AMS wird bei der Basisinstallation Enterprise Linux als Betriebssystem verwendet. Bei der Installation von Apache Webserver wird standardmäßig die Installationsdatei festgelegt. Im Folgenden finden Sie die Standarddateien, die durch die Installation der vom yum-Repository bereitgestellten grundlegenden RPMs installiert werden.
/etc/httpd/
├── conf
│ ├── httpd.conf
│ └── magic
├── conf.d
│ ├── autoindex.conf
│ ├── README
│ ├── userdir.conf
│ └── welcome.conf
├── conf.modules.d
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ └── 01-cgi.conf
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd
Wenn Sie das Installationsprojekt / die Struktur befolgen und berücksichtigen, erhalten Sie die folgenden Vorteile:
- Einfachere Unterstützung eines vorhersehbaren Layouts
- Automatisch bekannt für alle, die in der Vergangenheit an Enterprise Linux HTTPD-Installationen gearbeitet haben
- Ermöglicht Patchzyklen, die vom Betriebssystem vollständig unterstützt werden, ohne Konflikte oder manuelle Anpassungen
- Vermeidet SELinux-Verletzungen von falsch gekennzeichneten Dateikontexten
Hinweis:
Die Images der Adobe Managed Services-Server verfügen normalerweise über kleine Stammlaufwerke des Betriebssystems. Die Daten werden in einem separaten Volume abgelegt, das normalerweise in /mnt montiert wird.
Dann wird Volume anstelle der Standardwerte für die folgenden Standardverzeichnisse verwendet:
DocumentRoot
- Standard:
/var/www/html - AMS:
/mnt/var/www/html
Protokollordner
- Standard:
/var/log/httpd - AMS:
/mnt/var/log/httpd
Beachten Sie, dass die alten und neuen Verzeichnisse wieder auf den ursprünglichen Einhängepunkt abgebildet werden, um Verwirrung zu vermeiden. Die Verwendung eines separaten Volume ist nicht unbedingt erforderlich, aber es ist bemerkenswert.
AMS-Add-ons
AMS fügt sich zur Basisinstallation des Apache-Webservers hinzu.
Dokumentstamm
AMS-Standarddokumentstamm:
- Autor:
/mnt/var/www/author/ - Veröffentlichen:
/mnt/var/www/html/ - Catch-All- und Health Check-Wartung:
/mnt/var/www/default/
Staging- und aktivierte VirtualHost-Verzeichnisse
Die folgenden Verzeichnisse ermöglichen es Ihnen, Konfigurationsdateien mit einem Staging-Bereich zu erstellen, sodass Sie an Dateien arbeiten und sie nur aktivieren können, wenn sie bereit sind.
/etc/httpd/conf.d/available_vhosts/- Dieser Ordner hostet alle
<VirtualHost />-Dateien namens.vhost.
- Dieser Ordner hostet alle
/etc/httpd/conf.d/enabled_vhosts/- Wenn Sie bereit sind, die
.vhost-Dateien zu verwenden, die sich im Ordneravailable_vhostsbefinden, verknüpfen Sie sie mithilfe eines relativen Pfads mit demenabled_vhosts.
- Wenn Sie bereit sind, die
Zusätzliche conf.d Verzeichnisse
Es gibt zusätzliche Elemente, die in Apache-Konfigurationen häufig vorkommen. Wir haben Unterverzeichnisse erstellt, um eine saubere Möglichkeit zu bieten, diese Dateien zu trennen, und nicht alle Dateien in einem Verzeichnis zu haben.
-
Verzeichnis wird neu geschrieben Dieses Verzeichnis kann alle von Ihnen erstellten
\*_rewrite.rules-Dateien enthalten, die Ihre typische RewriteRule-Syntax enthalten, die für Apache-Webserver mod_rewrite-Modul gilt./etc/httpd/conf.d/rewrites/
-
Verzeichnis der Whitelists Dieses Verzeichnis kann alle von Ihnen erstellten
\*_whitelist.rules-Dateien enthalten, die Ihre typische IP-- oder IP erforderlich-Syntax enthalten, mit der Apache-Webserver Zugriffssteuerungen./etc/httpd/conf.d/whitelists/
-
Variablenverzeichnis Dieses Verzeichnis kann alle von Ihnen erstellten
\*.varsenthalten, die Variablen enthalten, die Sie in Ihren Konfigurationsdateien verwenden können./etc/httpd/conf.d/variables/
Spezifisches Konfigurationsverzeichnis des Dispatcher-Moduls
Apache-Webserver ist sehr erweiterbar. Wenn ein Modul zahlreiche Konfigurationsdateien enthält, empfiehlt es sich, einen eigenen Konfigurationsordner unter dem Installationsbasisordner zu erstellen, anstatt den standardmäßigen Ordner zu überladen.
Die Best Practices werden erstellt und befolgt.
Verzeichnis der Modulkonfigurationsdateien
/etc/httpd/conf.dispatcher.d/
Staging- und aktivierte Farmverzeichnisse
Die folgenden Verzeichnisse ermöglichen es Ihnen, Konfigurationsdateien mit einem Staging-Bereich zu erstellen, sodass Sie an Dateien arbeiten und sie nur aktivieren können, wenn sie bereit sind.
/etc/httpd/conf.dispatcher.d/available_farms/- In diesem Ordner werden alle
/myfarm {-Dateien mit dem Namen*_farm.anygespeichert.
- In diesem Ordner werden alle
/etc/httpd/conf.dispatcher.d/enabled_farms/- Wenn Sie bereit sind, die Farm-Datei im
available_farmsOrdner zu verwenden, verknüpfen Sie sie mithilfe eines relativen Pfads mit demenabled_farms.
- Wenn Sie bereit sind, die Farm-Datei im
Zusätzliche conf.dispatcher.d Verzeichnisse
Es gibt zusätzliche Teile, die Unterabschnitte der Dateikonfigurationen der Dispatcher-Farm sind, und Unterverzeichnisse werden erstellt, um eine saubere Möglichkeit zu bieten, diese Dateien zu trennen, und nicht alle Dateien in einem Verzeichnis zu haben.
-
Cache-Verzeichnis Dieses Verzeichnis enthält alle
*_cache.any,*_invalidate.anyvon Ihnen erstellten Dateien, die Ihre Regeln enthalten, wie das Modul Zwischenspeicherungselemente, die von AEM stammen, sowie die Syntax der Invalidierungsregeln verarbeiten soll. Weitere Informationen zu diesem Abschnitt finden hier./etc/httpd/conf.dispatcher.d/cache/
-
Client-Header-Verzeichnis Dieses Verzeichnis kann alle von Ihnen erstellten
*_clientheaders.anyenthalten, die Listen von Client-Headern enthalten, die bei einer Anforderung an AEM übergeben werden sollen. Weitere Informationen zu diesem Abschnitt finden hier./etc/httpd/conf.dispatcher.d/clientheaders/
-
Verzeichnis „Filter Dieses Verzeichnis kann alle von Ihnen erstellten
*_filters.anyenthalten, die alle Ihre Filterregeln enthalten, um Traffic über die Dispatcher zu blockieren oder zuzulassen, der AEM erreicht./etc/httpd/conf.dispatcher.d/filters/
-
Rendert das Verzeichnis Dieses Verzeichnis kann alle von Ihnen erstellten
*_renders.anyenthalten, die die Verbindungsdetails zu jedem Backend-Server enthalten, von dem die Dispatcher Inhalte nutzt./etc/httpd/conf.dispatcher.d/renders/
-
Verzeichnis vhosts Dieses Verzeichnis kann alle von Ihnen erstellten
*_vhosts.any-Dateien enthalten, die eine Liste der Domain-Namen und -Pfade enthalten, die mit einer bestimmten Farm mit einem bestimmten Backend-Server abgeglichen werden sollen./etc/httpd/conf.dispatcher.d/vhosts/
Vollständige Ordnerstruktur
AMS hat jede der Dateien mit benutzerdefinierten Dateierweiterungen strukturiert, um Namespace-Probleme/Konflikte und Verwirrung zu vermeiden.
Im Folgenden finden Sie ein Beispiel für einen Standarddateisatz aus einer AMS-Standardbereitstellung:
/etc/httpd/``
├── conf``
│├── httpd.conf``
│└── magic
├── conf.d
│├── autoindex.conf
│├── 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
.vhost
.vhost
.vhost
.vhost
│ ├── README│ ├── rewrites
│ │ ├── base_rewrite.rules
│ │ └── xforwarded_forcessl_rewrite.rules│ ├── userdir.conf
│ ├── variables│ │ └── ams_default.vars
│ ├── welcome.conf
│ └── 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
.any
.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
│ ├── 00-base.conf
│ ├── 00-dav.conf
│ ├── 00-lua.conf
│ ├── 00-mpm.conf
│ ├── 00-proxy.conf
│ ├── 00-systemd.conf
│ ├── 01-cgi.conf
│ └── 02-dispatcher.conf
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd
Optimal halten
Enterprise Linux verfügt über Patchzyklen für das Apache Webserver Package (httpd).
Je weniger Standarddateien Sie ändern, desto besser, denn wenn es gepatchte Sicherheitskorrekturen oder Konfigurationsverbesserungen gibt, die über den Befehl RPM / Yum angewendet werden, wenden sie die Korrekturen nicht auf eine geänderte Datei an.
Stattdessen wird eine .rpmnew Datei neben dem Original erstellt. Dies bedeutet, dass Sie einige Änderungen verpassen, die Sie vielleicht gewünscht haben, und mehr Speicherabfall in Ihren Konfigurationsordnern erstellen.
Enterprise Linux wurde ordnungsgemäß eingerichtet, um diesen Anwendungsfall besser zu handhaben. Sie geben Ihnen Bereiche, in denen Sie die für Sie festgelegten Standardwerte erweitern oder überschreiben können. Innerhalb der Basisinstallation von httpd finden Sie die Datei /etc/httpd/conf/httpd.conf, und sie hat eine Syntax darin, wie zum Beispiel:
Include conf.modules.d/*.conf
IncludeOptional conf.d/*.conf
Der Grundgedanke von Apache ist, dass Sie die Module und Konfigurationen beim Hinzufügen neuer Dateien zu den /etc/httpd/conf.d/- und /etc/httpd/conf.modules.d/-Verzeichnissen mit der Dateierweiterung .conf erweitern.
Als perfektes Beispiel für das Hinzufügen des Dispatcher-Moduls zu Apache würden Sie ein Modul .so eine Datei in /etc/httpd/modules/ erstellen und diese dann einbeziehen, indem Sie eine Datei in /etc/httpd/conf.modules.d/02-dispatcher.conf hinzufügen, mit dem Inhalt, um Ihre Modul .so Datei zu laden.
LoadModule dispatcher_module modules/mod_dispatcher.so
Beachten Sie, dass bereits vorhandene, von Apache bereitgestellte Dateien nicht geändert werden. Du hast deine gerade den Verzeichnissen hinzugefügt, in die sie gehen sollten.
Nutzen Sie nun das Modul in der Datei /etc/httpd/conf.d/dispatcher_vhost.conf, die das Modul initialisiert und die anfängliche modulspezifische Konfigurationsdatei lädt.
<IfModule disp_apache2.c>
DispatcherConfig conf.dispatcher.d/dispatcher.any
...SNIP...</IfModule>
Auch hier werden Sie feststellen, dass wir Dateien und Module hinzugefügt, aber keine Originaldateien geändert haben. Dies bietet die gewünschte Funktionalität und schützt vor fehlenden gewünschten Patch-Fehlerbehebungen sowie die Einhaltung des höchsten Kompatibilitätsniveaus bei jedem Upgrade des Pakets.