Environnement
Adobe Experience Manager
Problème/Symptômes
Ce document explique le jeu de fichiers de configuration standard AMS et l’idée sous-jacente à cette norme de configuration.
Structure de dossiers Enterprise Linux par défaut
Dans AMS, l’installation de base utilise Enterprise Linux comme système d’exploitation de base. Lors de l’installation du serveur web Apache, un fichier d’installation par défaut est défini. Voici les fichiers par défaut qui sont installés en installant les RPM de base fournis par le yum
référentiel.
/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
Lorsque vous suivez et respectez la conception/la structure de l’installation, les avantages sont les suivants :
Remarque :
Les images des serveurs Adobe Managed Services comportent généralement de petits lecteurs racine du système d’exploitation. Nous mettons nos données dans un volume distinct, généralement monté dans /mnt
Ensuite, nous utilisons ce volume au lieu des valeurs par défaut des répertoires par défaut suivants :
DocumentRoot
/var/www/html
/mnt/var/www/html
Répertoire des journaux
/var/log/httpd
/mnt/var/log/httpd
Gardez à l’esprit que les anciens et les nouveaux répertoires sont mappés à nouveau au point de montage d’origine pour éliminer toute confusion. L’utilisation d’un volume distinct n’est pas essentielle, mais il est à noter.
Modules complémentaires AMS
AMS s’ajoute à l’installation de base du serveur web Apache.
Racines du document
AMS Racines de document par défaut :
/mnt/var/www/author/
/mnt/var/www/html/
/mnt/var/www/default/
Évaluation et activation des répertoires VirtualHost
Les répertoires suivants vous permettent de créer des fichiers de configuration avec une zone d’évaluation, de sorte que vous pouvez travailler sur des fichiers et les activer uniquement lorsqu’ils sont prêts.
/etc/httpd/conf.d/available_vhosts/
.vhost
/etc/httpd/conf.d/enabled_vhosts/
.vhost
fichiers que vous avez dans la variable available_vhosts
dossier, lier symboliquement les à l’aide d’un chemin relatif dans enabled_vhosts
répertoire .Additional conf.d
Répertoires
D’autres éléments sont communs aux configurations Apache. Nous avons créé des sous-répertoires pour permettre de séparer ces fichiers de façon propre et de ne pas avoir tous les fichiers dans un seul répertoire.
Répertoire de réécritures Ce répertoire peut contenir tous les éléments suivants : \*_rewrite.rules
fichiers que vous créez qui contiennent vos RewriteRule syntaxe impliquant les serveurs web Apache mod_rewrite module .
/etc/httpd/conf.d/rewrites/
Répertoire des Listes autorisées Ce répertoire peut contenir tous les éléments suivants : \*_whitelist.rules
fichiers que vous créez qui contiennent vos Autorisation d’IP ou Requiert une adresse IP syntaxe impliquant les serveurs web Apache contrôles d’accès
/etc/httpd/conf.d/whitelists/
Répertoire des variables Ce répertoire peut contenir tous les éléments suivants : \*.vars
fichiers que vous créez qui contiennent des variables que vous pouvez utiliser dans vos fichiers de configuration
/etc/httpd/conf.d/variables/
Répertoire de configuration spécifique au module Dispatcher
Le serveur web Apache est très extensible et lorsqu’un module comporte de nombreux fichiers de configuration, il est recommandé de créer votre propre répertoire de configuration sous le répertoire de base d’installation plutôt que de le regrouper par défaut.
Nous suivons les bonnes pratiques et créons les nôtres.
Répertoire du fichier de configuration du module
/etc/httpd/conf.dispatcher.d/
Test et activation des répertoires de ferme
Les répertoires suivants vous permettent de créer des fichiers de configuration avec une zone d’évaluation, de sorte que vous pouvez travailler sur des fichiers et les activer uniquement lorsqu’ils sont prêts.
/etc/httpd/conf.dispatcher.d/available_farms/
/myfarm {
fichiers appelés *_farm.any
/etc/httpd/conf.dispatcher.d/enabled_farms/
available_farms
dossier, lier symboliquement les à l’aide d’un chemin relatif dans enabled_farms
directoryAdditional conf.dispatcher.d
Répertoires
Il existe d’autres éléments qui sont des sous-sections des configurations de fichiers de ferme du répartiteur et nous avons créé des sous-répertoires pour permettre de séparer ces fichiers de manière propre et de ne pas avoir tous les fichiers dans un seul répertoire.
Répertoire du cache Ce répertoire contient l’ensemble des *_cache.any
, *_invalidate.any
fichiers que vous créez et qui contiennent vos règles sur la manière dont le module doit gérer les éléments de mise en cache provenant d’AEM ainsi que la syntaxe des règles d’invalidation. Plus de détails sur cette section here
/etc/httpd/conf.dispatcher.d/cache/
Répertoire des en-têtes du client Ce répertoire peut contenir tous les éléments suivants : *_clientheaders.any
fichiers que vous créez et qui contiennent des listes d’en-têtes du client que vous souhaitez transmettre à AEM lorsqu’une requête arrive. Plus de détails sur cette section here
/etc/httpd/conf.dispatcher.d/clientheaders/
Répertoire des filtres Ce répertoire peut contenir tous les éléments suivants : *_filters.any
fichiers que vous créez et qui contiennent toutes vos règles de filtrage pour bloquer ou autoriser le trafic via le dispatcher à atteindre AEM.
/etc/httpd/conf.dispatcher.d/filters/
Répertoire des rendus Ce répertoire peut contenir tous les éléments suivants : *_renders.any
fichiers que vous créez contenant les détails de connectivité à chaque serveur principal à partir duquel Dispatcher consommera du contenu.
/etc/httpd/conf.dispatcher.d/renders/
Répertoire Vhosts Ce répertoire peut contenir tous les éléments suivants : *_vhosts.any
les fichiers que vous créez qui contiennent une liste des noms de domaine et des chemins d’accès à associer à une ferme de serveurs spécifique à un serveur principal particulier.
/etc/httpd/conf.dispatcher.d/vhosts/
Structure de dossiers complète
AMS a structuré chacun des fichiers avec des extensions de fichier personnalisées et dans le but d’éviter les problèmes/conflits d’espace de noms et toute confusion.
Voici un exemple de jeu de fichiers standard à partir d’un déploiement AMS par défaut :
/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
Conserver sa perfection
Enterprise Linux possède des cycles de correction pour le module Apache Webserver (httpd).
Moins vous changez de fichiers par défaut installés, pour des raisons : si des correctifs de sécurité ou des améliorations de configuration sont appliqués via la commande RPM/Yum, les correctifs ne seront pas appliqués en haut d’un fichier modifié.
A la place, il crée une .rpmnew
en regard de l’original. Cela signifie que vous allez rater certaines modifications que vous auriez pu souhaiter et créer plus de mémoire dans vos dossiers de configuration.
Enterprise linux a été configuré correctement pour gérer ce cas d’utilisation de manière plus efficace. Ils vous donnent des zones dans lesquelles vous pouvez étendre ou remplacer les valeurs par défaut qu’ils vous ont définies. Dans l’installation de base de httpd, vous trouverez le fichier . /etc/httpd/conf/httpd.conf
et contient une syntaxe telle que :
Include conf.modules.d/*.conf
IncludeOptional conf.d/*.conf
L’idée est qu’Apache souhaite que vous étendiez les modules et les configurations en ajoutant de nouveaux fichiers au /etc/httpd/conf.d/
et /etc/httpd/conf.modules.d/
répertoires avec une extension de fichier de .conf
Comme exemple parfait lors de l’ajout du module Dispatcher à Apache, vous créez un module . .so
dans /etc/httpd/modules/
puis l’inclure en ajoutant un fichier dans /etc/httpd/conf.modules.d/02-dispatcher.conf
avec les contenus pour charger votre module .so
fichier .
LoadModule dispatcher_module modules/mod_dispatcher.so
Notez que nous n’avons modifié aucun fichier existant fourni par Apache. Nous avons juste ajouté les nôtres dans les répertoires où ils étaient censés aller.
Maintenant, nous utilisons notre module dans notre fichier /etc/httpd/conf.d/dispatcher_vhost.conf
qui initialise notre module et charge le fichier de configuration spécifique au module initial.
IfModule disp_apache2.c
DispatcherConfig conf.dispatcher.d/dispatcher.any
...SNIP.../IfModule
Encore une fois, vous remarquerez que nous avons ajouté des fichiers et des modules, mais que nous n’avons modifié aucun fichier d’origine. Cela nous donne les fonctionnalités souhaitées et nous protège des correctifs manquants ainsi que de la conservation du niveau de compatibilité le plus élevé à chaque mise à niveau du package.