Mise en page de base d’Adobe Managed Services (AMS)

Dernière mise à jour : 2023-02-22

Description

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.

Résolution

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 :

  • Prise en charge plus facile d’une disposition prévisible
  • Familiarisez-vous automatiquement avec toute personne ayant travaillé sur des installations HTTPD Enterprise Linux dans le passé.
  • Permet des cycles de correction entièrement pris en charge par le système d’exploitation sans conflit ni réglages manuels.
  • Eviter les violations SELinux des contextes de fichiers mal étiquetés

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

  • Valeur par défaut : /var/www/html
  • AMS: /mnt/var/www/html

Répertoire des journaux

  • Valeur 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 à 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 :

  • Auteur: /mnt/var/www/author/
  • Publier: /mnt/var/www/html/
  • Maintenance de la capture et du contrôle de l’intégrité : /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/
    • Ce dossier hébergera tous vos fichiers/hôtes virtuels appelés .vhost
  • /etc/httpd/conf.d/enabled_vhosts/
    • Lorsque vous êtes prêt à utiliser la variable .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.

  1. 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/
  2. 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/
  3. 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/
    • Ce dossier hébergera toutes vos /myfarm { fichiers appelés *_farm.any
  • /etc/httpd/conf.dispatcher.d/enabled_farms/
    • Lorsque vous êtes prêt à utiliser le fichier de ferme que vous avez dans la variable available_farms dossier, lier symboliquement les à l’aide d’un chemin relatif dans enabled_farms directory

Additional 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.

  1. 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/
  2. 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/
  3. 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/
  4. 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/
  5. 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.confet 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.

Sur cette page