Grundlegendes Datei-Layout

In diesem Dokument werden die standardmäßigen AMS-Konfigurationsdateien sowie der Ansatz hinter diesem Konfigurationsstandard erläutert.

🏠Inhalt

🔙Zurück Was ist der Dispatcher?

Standardmäßige Ordnerstruktur von Enterprise Linux

In AMS verwendet die Basisinstallation Enterprise Linux als Basisbetriebssystem.  Die Installation des Apache-Webservers umfasst einige standardmäßige Installationsdateien.  Im Folgenden finden Sie die Dateien, die standardmäßig mit Installation der RPM-Dateien aus dem Yum-Repository 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 
├── logs -> ../../var/log/httpd 
├── modules -> ../../usr/lib64/httpd/modules 
└── run -> /run/httpd

Indem wir Installationsdesign und -struktur kennen und berücksichtigen, erhalten wir folgende Vorteile:

  • Einfachere Unterstützung eines vorhersagbaren Layouts
  • Direkte Vertrautheit für alle Benutzer, die bereits mit HTTPD-Installationen unter Enterprise Linux gearbeitet haben
  • Vollständig vom Betriebssystem unterstützte Patch-Zyklen ohne Konflikte oder manuelle Anpassungen
  • Keine SELinux-Verstöße oder falsch gekennzeichnete Dateikontexte
Hinweis:

Die AMS-Server-Images verfügen in der Regel über kleine Betriebssystem-Stammverzeichnisse.  Wir legen unsere Daten in einem separate Volume ab, das in der Regel in „/mnt“ bereitgestellt wird.

Anschließend verwenden wir dieses Volume anstelle der folgenden Standardverzeichnisse:

DocumentRoot

  • Standard: /var/www/html
  • AMS: /mnt/var/www/html

Protokollverzeichnis

  • Standard: /var/log/httpd
  • AMS: /mnt/var/log/httpd

Beachten Sie, dass die alten und neuen Verzeichnisse auch dem ursprünglichen Bereitstellungspunkt zugeordnet werden, um Missverständnisse zu vermeiden.

Die Verwendung eines separaten Volume ist zwar nicht zwingend erforderlich, aber hilfreich.

AMS-Add-ons

AMS ergänzt die Basisinstallation des Apache-Webservers.

Document Roots

Standardmäßige AMS Document Roots:

  • Autor:
    • /mnt/var/www/author
  • Veröffentlichen:
    • /mnt/var/www/html/
  • Catch-All und Zustandsprüfung
    • /mnt/var/www/default/

Staging und Aktivierung von VirtualHost-Verzeichnissen

Mit den folgenden Verzeichnissen können Sie Konfigurationsdateien erstellen, die einen Staging-Bereich aufweisen. So können Sie Dateien sicher bearbeiten und sie erst aktivieren, wenn sie bereit sind.
  • /etc/httpd/conf.d/available_vhosts/
    • Dieser Ordner enthält all Ihre <VirtualHost />-Dateien (*.vhost).
  • /etc/httpd/conf.d/enabled_vhosts/
    • Wenn Sie bereits sind, die im Ordner „available_vhosts“ verfügbaren *.vhost-Dateien zu verwenden, fügen Sie einen Symlink mit einem relativen Pfad zum Verzeichnis „enabled_vhosts“ hinzu.

Zusätzliche „conf.d“-Verzeichnisse

Es gibt einige zusätzliche Elemente, die häufig in Apache-Konfigurationen vorkommen. Hierfür haben wir Unterverzeichnisse erstellt, damit Sie diese Dateien nicht unübersichtlich in einem Verzeichnis ablegen müssen, sondern sauber trennen können.

Rewrite-Verzeichnis

Dieses Verzeichnis enthält alle von Ihnen erstellten *_rewrite.rules-Dateien. Diese enthalten die normale RewriteRule-Syntax, die das Modul mod_rewrite des Apache-Webservers ansteuert.

  • /etc/httpd/conf.d/rewrites/

Whitelist-Verzeichnis

Dieses Verzeichnis enthält alle von Ihnen erstellten *_whitelist.rules-Dateien. Diese enthalten die normale IP Allow- oder Require IP-Syntax, die die Zugriffssteuerung des Apache-Webservers ansteuert.

  • /etc/httpd/conf.d/whitelists/

Variablenverzeichnis

Dieses Verzeichnis enthält alle von Ihnen erstellten *.vars-Dateien, die Variablen beinhalten, die Sie in Ihren Konfigurationsdateien verwenden können.

  • /etc/httpd/conf.d/variables/

Spezielles Dispatcher-Konfigurationsverzeichnis

Der Apache-Webserver ist stark erweiterbar. Wenn ein Modul durch eine solche Erweiterung über viele Konfigurationsdateien verfügt, ist es Best Practice, ein eigenes Konfigurationsverzeichnis im Basisinstallationsordner zu erstellen, anstatt das Standardverzeichnis zu überfüllen.

Wir befolgen die Best Practice und haben unser eigenes Verzeichnis erstellt:

Dateiverzeichnis zur Modulkonfiguration

  • /etc/httpd/conf.dispatcher.d/

Staging und Aktivierung von Farmverzeichnissen

Mit den folgenden Verzeichnissen können Sie Konfigurationsdateien erstellen, die einen Staging-Bereich aufweisen. So können Sie Dateien sicher bearbeiten und sie erst aktivieren, wenn sie bereit sind.
  • /etc/httpd/conf.dispatcher.d/available_farms/
    • Dieser Ordner enthält all Ihre /myfarm {-Dateien namens *_farm.any.
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Wenn Sie bereit sind, die im Ordner „available_farms“ verfügbare Farmdatei zu verwenden, fügen Sie einen Symlink mit einem relativen Pfad zum Verzeichnis „enabled_farms“ hinzu.

Zusätzliche „conf.dispatcher.d“-Verzeichnisse

Es gibt einige zusätzliche Elemente, die im Rahmen der Konfiguration der Dispatcher-Farmdatei auftreten. Für diese Elemente haben wir Unterverzeichnisse erstellt, damit Sie die Dateien nicht unübersichtlich in einem Verzeichnis ablegen müssen, sondern sauber trennen können.

Cache-Verzeichnis

Dieses Verzeichnis umfasst alle von Ihnen erstellten *_cache.any- und *_invalidate.any-Dateien, die neben den Regeln, wie das Modul das Caching der von AEM stammenden Elemente handhaben soll, auch eine Syntax für Invalidierungsregeln enthalten.  Weitere Informationen zu diesem Abschnitt finden Sie hier.

  • /etc/httpd/conf.dispatcher.d/cache/

Client-Header-Verzeichnis

Dieses Verzeichnis umfasst alle von Ihnen erstellten *_clientheaders.any-Dateien, die Listen von Client-Headern enthalten, die Sie bei eingehenden Anfragen an AEM übergeben möchten.  Weitere Informationen zu diesem Abschnitt finden Sie hier.

  • /etc/httpd/conf.dispatcher.d/clientheaders/

Filterverzeichnis

Dieses Verzeichnis umfasst alle von Ihnen erstellen *_filters.any-Dateien, die die Filterregeln enthalten, mit denen Sie steuern, ob Traffic im Dispatcher AEM erreichen darf oder blockiert wird.

  • /etc/httpd/conf.dispatcher.d/filters/

Render-Verzeichnis

Dieses Verzeichnis umfasst alle von Ihnen erstellten *_renders.any-Dateien, die Verbindungsdetails zu jedem Backend-Server enthalten, von dem der Dispatcher Inhalte abruft.

  • /etc/httpd/conf.dispatcher.d/renders/

Vhost-Verzeichnis

Dieses Verzeichnis umfasst alle von Ihnen erstellten *_vhosts.any-Dateien, die eine Liste der Domain-Namen und Pfade enthalten, um die jeweilige Farm dem richtigen Backend-Server zuzuordnen.

  • /etc/httpd/conf.dispatcher.d/vhosts/

Vollständige Ordnerstruktur

In AMS sind die Dateien mit individuellen Dateierweiterungen strukturiert. Dies dient dazu, Namespace-Probleme und -Konflikte sowie Missverständnisse zu vermeiden.

Nachfolgend finden Sie Beispiele der standardmäßigen Dateien aus einer AMS-Standardimplementierung:

/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 
│   │   ├── aem_author.vhost -> ../available_vhosts/aem_author.vhost 
│   │   ├── aem_flush.vhost -> ../available_vhosts/aem_flush.vhost 
│   │   ├── aem_health.vhost -> ../available_vhosts/aem_health.vhost 
│   │   └── aem_publish.vhost -> ../available_vhosts/aem_publish.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 
│   ├── enabled_farms 
│   │   ├── 000_ams_author_farm.any -> ../available_farms/000_ams_author_farm.any 
│   │   └── 999_ams_publish_farm.any -> ../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 
│   ├── 00-base.conf 
│   ├── 00-dav.conf 
│   ├── 00-lua.conf 
│   ├── 00-mpm.conf 
│   ├── 00-proxy.conf 
│   ├── 00-systemd.conf 
│   ├── 01-cgi.conf 
│   └── 02-dispatcher.conf 
├── logs -> ../../var/log/httpd 
├── modules -> ../../usr/lib64/httpd/modules 
└── run -> /run/httpd 

Ideale Konfiguration

Enterprise Linux bietet Patch-Zyklen für das Apache-Webserver-Paket (HTTPD).

Je weniger installierte Standarddateien Sie ändern, desto besser. Das liegt daran, dass bei der Anwendung von Sicherheits-Patches oder Konfigurationsverbesserungen per RPM-/Yum-Befehl diese Patches/Verbesserungen nicht auf die geänderte Datei selbst angewendet werden.

Stattdessen wird eine neue *.rpmnew-Datei neben dem Original erstellt.  So übersehen Sie möglicherweise Änderungen, die eigentlich erforderlich gewesen wären, und sorgen für unnötiges Dateichaos in Ihren Konfigurationsordnern.

Enterprise Linux bietet eine bessere Möglichkeit, diesen Anwendungsfall zu handhaben.  Das Betriebssystem bietet Ihnen Bereiche, in denen Sie die für Sie festgelegten Standards erweitern oder überschreiben können.  In der HTTPD-Basisinstallation finden Sie die Datei „/etc/httpd/conf/httpd.conf“, deren Syntax wie folgt aussieht:

 

Include conf.modules.d/*.conf 
IncludeOptional conf.d/*.conf

Apache sieht vor, dass Sie Module und Konfigurationen erweitern, indem Sie neue Dateien mit der Erweiterung .conf zu den Verzeichnissen /etc/httpd/conf.d/ und /etc/httpd/conf.modules.d/ hinzufügen.

So würden Sie beispielsweise beim Hinzufügen des Dispatcher-Moduls zu Apache eine *.so-Moduldatei in /etc/httpd/modules/ erstellen und diese dann einbeziehen, indem Sie unter /etc/httpd/conf.modules.d/02-dispatcher.conf eine Datei mit den Inhalten zum Laden Ihrer *.so-Moduldatei hinzufügen.

LoadModule dispatcher_module modules/mod_dispatcher.so

Hinweis: Wir haben keine der von Apache bereitgestellten Dateien verändert.  Stattdessen haben wie einfach unsere Dateien zu den passenden Verzeichnissen hinzugefügt.

Jetzt verwenden wir unser Modul in der Datei /etc/httpd/conf.d/dispatcher_vhost.conf. Diese Datei initialisiert das Modul und lädt die erste modulspezifische Konfigurationsdatei.

<IfModule disp_apache2.c> 
    DispatcherConfig conf.dispatcher.d/dispatcher.any 
    ...SNIP... 
</IfModule>

Auch hier haben wir Dateien und Module hinzugefügt, aber nicht die Originaldateien verändert.  So erhalten wir die gewünschte Funktionalität, schützen uns vor ungewollten Patches und können optimale Kompatibilität mit jedem Upgrade des Pakets gewährleisten.

Adobe-Logo

Bei Ihrem Konto anmelden