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.
  • /etc/httpd/conf.d/enabled_vhosts/
    • Wenn Sie bereit sind, die .vhost-Dateien zu verwenden, die sich im Ordner available_vhosts befinden, verknüpfen Sie sie mithilfe eines relativen Pfads mit dem enabled_vhosts.

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.

  1. 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/
  2. 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/
  3. Variablenverzeichnis Dieses Verzeichnis kann alle von Ihnen erstellten \*.vars enthalten, 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.any gespeichert.
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Wenn Sie bereit sind, die Farm-Datei im available_farms Ordner zu verwenden, verknüpfen Sie sie mithilfe eines relativen Pfads mit dem enabled_farms.

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.

  1. Cache-Verzeichnis Dieses Verzeichnis enthält alle *_cache.any, *_invalidate.any von 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/
  2. Client-Header-Verzeichnis Dieses Verzeichnis kann alle von Ihnen erstellten *_clientheaders.any enthalten, 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/
  3. Verzeichnis „Filter Dieses Verzeichnis kann alle von Ihnen erstellten *_filters.any enthalten, die alle Ihre Filterregeln enthalten, um Traffic über die Dispatcher zu blockieren oder zuzulassen, der AEM erreicht.

    • /etc/httpd/conf.dispatcher.d/filters/
  4. Rendert das Verzeichnis Dieses Verzeichnis kann alle von Ihnen erstellten *_renders.any enthalten, die die Verbindungsdetails zu jedem Backend-Server enthalten, von dem die Dispatcher Inhalte nutzt.

    • /etc/httpd/conf.dispatcher.d/renders/
  5. 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.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f