En présence de plusieurs hôtes virtuels avec des batteries de cache AEM Dispatcher distinctes, configurées sur un serveur Web, comment vider le cache correct d’AEM ?

Environnement

Serveur HTTP Apache / répartiteur AEM.

Étapes

Configurez un agent de vidage de Dispatcher par batterie de répartiteurs, définissez l’en-tête Host et configurez l’« ID utilisateur de l’agent » avec un utilisateur disposant d’un accès en lecture aux chemins pertinents.

Dans les solutions suivantes, nous supposons que :

  • vous utilisez Apache HTTP Server 2.2 ou une version ultérieure ;
  • plusieurs hôtes virtuels (VirtualHosts) sont configurés ;
  • vous utilisez plusieurs fermes de Dispatcher avec des caches séparés.

Par exemple :
Apache httpd VirtualHost configurations :

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName www.geometrixx.com
    ServerAlias *.geometrixx.com
    DocumentRoot /var/www/html/cache-www-geometrixx-com
     ...  
</VirtualHost>

<VirtualHost *:80>
    ServerName www.geometrixx-outdoors.com
    ServerAlias *.geometrixx-outdoors.com
    DocumentRoot <Global Doc root>/site2
    Include <Configurations specific to site2>
</VirtualHost>
DocumentRoot /var/www/html/cache-www-geometrixx-outdoors-com

Dans la configuration du Dispatcher, plusieurs batteries sont configurées pour gérer différents sites par nom d’hôte (virtualhosts) :

/virtualhosts
  {
      "*geometrixx.com*"
  }

  /renders
  {
        ...
  }

  /cache {
       /docroot "/var/www/html/cache-www-geometrixx-com"

Configuration de plusieurs agents de vidage

Si vous n’avez qu’une poignée de batteries de Dispatcher distinctes (5 ou moins), la configuration de plusieurs agents de vidage est une solution facile.

  1. Ouvrez http://aem-host:port/miscadmin pour chaque instance de publication AEM.

  2. Accédez à Replication => Agents on Publish.

  3. Cliquez sur Modifier.

  4. Sous ID utilisateur de l’agent, veuillez saisir le nom d’un utilisateur que vous créez ultérieurement et qui sera associé à cet agent.  Vous pouvez utiliser une convention d’attribution des noms avec le nom d’hôte du site.  Par exemple : "flush-agent-www-geometrixx-com". 

  5. Cliquez sur l’onglet « Avancé ».

  6. Sous HTTP Headers, ajoutez un autre en-tête.  En tant que valeur, entrez « Host: www.geometrixx.com » où « www.geometrixx.com » doit être remplacé par l’un des hôtes DNS des sites.

  7. Cliquez sur Ok pour enregister vos modifications.

  8. Accédez à http://aem-host:port/useradmin et créez l’utilisateur à partir de l’étape 4.

  9. Dans l’onglet Autorisations de l’utilisateur, accordez à l’utilisateur l’accès en lecture aux chemins que vous souhaitez que l’agent soit autorisé à vider pour le site référencé.  Par exemple : /content/geometrixx, /content/dam, /etc, /libs, /apps, /var.

  10. Enregistrer.

  11. Répétez les étapes 1 à 10 pour tous les autres sites sur chaque instance de publication.  Vous allez créer un agent de vidage pour chaque site sur chaque instance de publication.

  12. Sur le serveur Web, partagez des chemins communs à l’aide de liens symboliques.  Par exemple, vous pouvez définir des liens symboliques pour for /content/dam, /etc, /libs, /apps et /var vers un emplacement de cache commun.  Alors /content et tout sous la racine du cache seraient mis en cache séparément.  Exemple de commande pour le dossier /libs. 

    ln -s /var/www/html/cache-www-geometrixx-com/libs /var/www/html/shared-cache

  13. Maintenant, lorsque vous activez des pages sous un site spécifique, la demande de vidage ne sera dirigée que vers l’agent de vidage applicable.