Mise en page de base du fichier

Ce document présente l’ensemble des fichiers de configuration standard d’AMS et explique le raisonnement sous-jacent à cette norme de configuration.

Structure de dossiers par défaut d’Enterprise Linux

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 ensemble de fichiers d’installation par défaut sera défini.  Voici les fichiers par défaut qui s’installent en utilisant les RPM de base fournis par le référentiel yum

/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

En suivant et en respectant la conception et la structure de l’installation, nous bénéficions des avantages suivants :

  • Prise en charge plus facile d’une mise en page prévisible
  • Familiarisation automatique avec tous ceux ayant travaillé sur des installations HTTPD Enterprise Linux dans le passé
  • Possibilité d’effectuer des cycles de correction entièrement pris en charge par le système d’exploitation sans conflits ni ajustements manuels
  • Prévention des violations contre SELinux causées par des contextes de fichiers mal étiquetés
Remarque :

Les images des serveurs Adobe Managed Services ont généralement de petits disques racines du système d’exploitation.  Nous mettons nos données dans un volume séparé qui est généralement installé dans /mnt.

Ensuite, nous utilisons ce volume au lieu des valeurs par défaut pour les répertoires par défaut suivants.

DocumentRoot

  • Par défaut : /var/www/html
  • AMS : /mnt/var/www/html

Répertoire des journaux

  • Par défaut : /var/log/httpd
  • AMS : /mnt/var/log/httpd

Gardez à l’esprit que les anciens et les nouveaux répertoires sont mappés de nouveau au point de montage d’origine pour dissiper toute confusion.

L’utilisation d’un volume séparé n’est pas indispensable, mais il est important de le mentionner.

Modules complémentaires AMS

AMS s’ajoute à l’installation de base du serveur web Apache.

Racines du document

Racines du document AMS par défaut :

  • Auteur:
    • /mnt/var/www/author/
  • Publication :
    • /mnt/var/www/html/
  • Mise en cache totale et maintenance du contrôle de l’intégrité
    • /mnt/var/www/default/

Test et activation des répertoires VirtualHost

Les répertoires suivants vous permettent de créer des fichiers de configuration ayant une zone de test. Grâce à cette dernière, vous pouvez travailler avec les fichiers et ne les activer que lorsqu’ils sont prêts.
  • /etc/httpd/conf.d/available_vhosts/
    • Ce dossier hébergera tous vos fichiers <VirtualHost /> appelés .vhost.
  • /etc/httpd/conf.d/enabled_vhosts/
    • Lorsque vous êtes prêt à utiliser les fichiers .vhost disponibles dans le dossier available_vhosts, liez-les par un lien symbolique avec un chemin relatif dans le répertoire enabled_vhosts.

Répertoires conf.d supplémentaires

D’autres éléments sont communs dans les configurations d’Apache. Nous avons créé des sous-répertoires pour permettre de séparer ces fichiers proprement et de ne pas les avoir tous dans le même répertoire.

Répertoire des réécritures

Ce répertoire peut contenir tous les fichiers *_rewrite.rules que vous créez et qui contiennent votre syntaxe RewriteRule classique impliquant le module mod_rewrite des serveurs web Apache.

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

Répertoire des listes blanches

Ce répertoire peut contenir tous les fichiers *_whitelist.rules que vous créez et qui contiennent votre syntaxe IP Allow ou Require IP classique impliquant les contrôles d’accès des serveurs web Apache.

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

Répertoire des variables

Ce répertoire peut contenir tous les fichiers *.vars que vous créez et 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 du Dispatcher

Le serveur web Apache est très extensible. Quand un module a beaucoup de fichiers de configuration, la bonne pratique est de créer votre propre répertoire de configuration sous le répertoire de base d’installation au lieu d’encombrer celui par défaut.

Nous suivons cette bonne pratique et avons créé le nôtre.

Répertoire du fichier de configuration du module

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

Test et activation des répertoires de la ferme

Les répertoires suivants vous permettent de créer des fichiers de configuration ayant une zone de test. Grâce à cette dernière, vous pouvez travailler avec les fichiers et ne les activer que lorsqu’ils sont prêts.
  • /etc/httpd/conf.dispatcher.d/available_farms/
    • Ce dossier hébergera tous vos fichiers /myfarm { appelés *_farm.any.
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Lorsque vous êtes prêt à utiliser les fichiers de ferme disponibles dans le dossier available_farms, liez-les par un lien symbolique avec un chemin relatif dans le répertoire enabled_farms.

Répertoires conf.dispatcher.d supplémentaires

D’autres éléments sont des sous-sections de la configuration des fichiers de la ferme du répartiteur. Nous avons créé des sous-répertoires pour permettre de séparer ces fichiers proprement et de ne pas les avoir tous dans le même répertoire.

Répertoire du cache

Ce répertoire contient tous les fichiers *_cache.any, *_invalidate.any que vous créez et qui contiennent vos règles sur la façon dont vous voulez que le module gère les éléments de la mise en cache en provenance d’AEM et la syntaxe des règles d’invalidation.  Pour plus d’informations sur cette section, cliquez ici.

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

Répertoire des en-têtes clients

Ce répertoire peut contenir tous les fichiers *_clientheaders.any que vous créez et qui contiennent des listes d’en-têtes clients que vous voulez transmettre à AEM chaque fois qu’une requête est envoyée.  Pour plus d’informations sur cette section, cliquez ici.

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

Répertoire des filtres

Ce répertoire peut contenir tous les fichiers *_filters.any que vous créez et qui contiennent toutes vos règles de filtre pour bloquer ou autoriser le trafic via le répartiteur pour atteindre AEM.

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

Répertoire des rendus

Ce répertoire peut contenir tous les fichiers *_renders.any que vous créez et qui contiennent les détails de connectivité de chaque serveur principal sur lequel le répartiteur va utiliser du contenu.

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

Répertoire Vhosts

Ce répertoire peut contenir tous les fichiers *_vhosts.any que vous créez et qui contiennent une liste des noms de domaine et des chemins à associer à une ferme particulière sur un serveur principal particulier.

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

Structure complète des dossiers

AMS a structuré chacun des fichiers avec des extensions de fichiers personnalisées et dans le but d’éviter les conflits/problèmes d’espace de nommage ainsi que toute confusion.

Voici l’exemple d’un ensemble de fichiers standard issu d’un déploiement par défaut d’AMS :

/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 

Ne gardez que le meilleur

Enterprise Linux comporte des cycles de correction pour le package du serveur web Apache (httpd).

Moins vous changez de fichiers par défaut installés, mieux c’est. En effet, si des correctifs de sécurité ou des améliorations de configuration sont appliqués via la commande RPM/Yum, les correctifs ne s’appliqueront pas sur un fichier modifié.

Au lieu de cela, un fichier .rpmnew est créé à côté de l’original.  Cela signifie que vous allez passer à côté de certaines modifications que vous auriez pu souhaiter et créer plus de désordre dans vos dossiers de configuration.

Enterprise linux a été configuré correctement pour mieux gérer ce cas d’utilisation.  Vous disposerez ainsi de zones dans lesquelles vous pouvez étendre ou remplacer les valeurs par défaut définies pour vous.  Dans l’installation de base de httpd, vous trouverez le fichier /etc/httpd/conf/httpd.conf, qui contient la syntaxe suivante :

 

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

En fait, Apache souhaite vous voir étendre les modules et les configurations en ajoutant de nouveaux fichiers aux répertoires the /etc/httpd/conf.d/ et /etc/httpd/conf.modules.d/ avec une extension de fichier .conf

À titre d’exemple parfait, lorsque vous ajoutez le module du répartiteur à Apache, vous créez un fichier de module .so dans /etc/httpd/modules/ et l’incluez ensuite en ajoutant un fichier dans /etc/httpd/conf.modules.d/02-dispatcher.conf avec le contenu pour charger votre fichier de module .so.

LoadModule dispatcher_module modules/mod_dispatcher.so

Notez que nous n’avons pas modifié les fichiers existants fournis par Apache.  À la place, nous avons simplement ajouté les nôtres aux répertoires auxquels ils étaient destinés.

À présent, 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 pas modifié les fichiers originaux.  Nous obtenons ainsi la fonctionnalité souhaitée et nous nous protégeons des correctifs souhaités manquants, tout en conservant le plus haut niveau de compatibilité à chaque mise à niveau du package.

Logo Adobe

Accéder à votre compte