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

Explorez le jeu de fichiers de configuration standard AMS et l’idée sous-jacente à cette norme de configuration dans Adobe Experience Manager.

Description description

Environnement

Adobe Experience Manager (AEM)

Problème/Symptômes

Ce document explique le jeu de fichiers de configuration standard AMS et la pensée qui sous-tend cette norme de configuration.

Résolution resolution

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 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
/var/log/httpd
/usr/lib64/httpd/modules
/run/httpd

Lorsque vous suivez et respectez la conception/structure de l'installation, vous bénéficiez des avantages suivants :

  • Prise en charge plus facile d’une mise en page 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 Managed Services Adobe ont généralement de petits lecteurs racine du système d’exploitation. Les données sont placées dans un volume distinct, généralement monté dans /mnt.

Le volume est alors utilisé, au lieu des valeurs par défaut des répertoires par défaut suivants :

DocumentRoot

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

Répertoire de journal

  • 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. Utiliser un volume distinct n'est pas essentiel, mais il est remarquable.

Modules complémentaires AMS

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

Racines de document

AMS Racines de document par défaut :

  • Auteur : /mnt/var/www/author/
  • Publish : /mnt/var/www/html/
  • Maintenance de la capture complète 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éberge tous vos fichiers < VirtualHost /> appelés .vhost.
  • /etc/httpd/conf.d/enabled_vhosts/
    • Lorsque vous êtes prêt à utiliser les fichiers .vhost présents dans le dossier available_vhosts, liez-les par symbolique à l’aide d’un chemin relatif dans le répertoire enabled_vhosts.

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 manière propre et de ne pas avoir tous les fichiers dans un seul répertoire.

  1. Réécrit le répertoire 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/
  2. Répertoire des listes blanches Ce répertoire peut contenir tous les fichiers \*_whitelist.rules que vous créez et qui contiennent vos contrôles d’accès ou Exiger une syntaxe IP qui impliquent des 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 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 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 d’encombrer celui par défaut.

Les bonnes pratiques sont créées et suivies.

Répertoire de fichier de configuration de module

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

Staging and Enabled Farm Directories

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éberge tous vos fichiers /myfarm { 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 le dossier available_farms, liez-le par un lien symbolique à l’aide d’un chemin d’accès relatif dans le répertoire enabled_farms.

conf.dispatcher.d Répertoires

D’autres éléments sont des sous-sections des configurations de fichiers de fermes de serveurs Dispatcher. De plus, des sous-répertoires sont créés pour permettre une séparation nette de ces fichiers, sans que tous les fichiers soient regroupés dans un seul répertoire.

  1. Répertoire du cache Ce répertoire contient tous les fichiers *_cache.any et *_invalidate.any que vous créez et qui contiennent vos règles sur la manière dont vous souhaitez que le module traite les éléments de mise en cache provenant d’AEM ainsi que la syntaxe des règles d’invalidation.  Vous trouverez plus d'informations sur cette section ici.

    • /etc/httpd/conf.dispatcher.d/cache/
  2. Répertoire des en-têtes du client Ce répertoire peut contenir tous les fichiers *_clientheaders.any que vous créez et qui contiennent les listes d’en-têtes client que vous souhaitez transmettre à AEM lorsqu’une requête arrive.  Plus de détails sur cette section sont ici.

    • /etc/httpd/conf.dispatcher.d/clientheaders/
  3. 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 filtrage pour bloquer ou autoriser le trafic via Dispatcher à atteindre AEM.

    • /etc/httpd/conf.dispatcher.d/filters/
  4. 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 à partir duquel Dispatcher utilise du contenu.

    • /etc/httpd/conf.dispatcher.d/renders/
  5. Répertoire Vhosts Ce répertoire peut contenir tous les fichiers *_vhosts.any que vous créez et qui contiennent la liste des noms de domaine et des chemins d’accès à associer à une ferme 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
.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

Garder idéal

Enterprise Linux possède des cycles de correction pour le module Apache Webserver (httpd).

Moins vous modifiez les fichiers par défaut installés, mieux c’est, car s’il existe des correctifs de sécurité ou des améliorations de configuration appliqués via la commande RPM/Yum, ils n’appliquent pas les correctifs au-dessus d’un fichier modifié.

À la place, il crée un fichier .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, qui 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 aux répertoires /etc/httpd/conf.d/ et /etc/httpd/conf.modules.d/ avec une extension de fichier .conf .

Comme exemple parfait lors de l’ajout du module de Dispatcher à Apache, vous créez un fichier de module .so dans /etc/httpd/modules/, puis vous l’incluez 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 les fichiers existants fournis par Apache ne sont pas modifiés. Vous venez d'ajouter les vôtres dans les répertoires où ils étaient destinés.

Maintenant, consommez le module dans le fichier /etc/httpd/conf.d/dispatcher_vhost.conf, qui initialise le module et charge le fichier de configuration initial spécifique au module.

<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 permet d’offrir les fonctionnalités souhaitées et de protéger les correctifs manquants, ainsi que de maintenir le niveau de compatibilité le plus élevé avec chaque mise à niveau du package.

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