Como liberar o cache do dispatcher quando houver farms com pastas de cache separadas

Quando tenho vários hosts virtuais com farms de cache separados do AEM Dispatcher configurados no meu servidor da Web, como faço para liberar o cache correto do AEM?

Ambiente

Apache HTTP Server / AEM dispatcher

Etapas

Configure um agente de liberação do dispatcher por farm de dispatchers, defina o cabeçalho do Host e configure o "ID do usuário do agente" com um usuário que tenha acesso de leitura a caminhos relevantes.

Nas soluções abaixo, assumimos o seguinte:

  • Você está usando o Apache HTTP Server 2.2 ou versão posterior
  • Vários VirtualHosts configurados
  • Vários farms de dispatchers com caches separados

Por exemplo:
Configurações do Apache httpd VirtualHost:

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

Na configuração do dispatcher, você tem vários farms configurados para lidar com sites diferentes pelo nome do host (virtualhosts):

/virtualhosts
  {
      "*geometrixx.com*"
  }

  /renders
  {
        ...
  }

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

Configurar vários agentes de limpeza

Se você tiver apenas um punhado de fazendas de despachante separadas (5 ou menos), a configuração de vários agentes de limpeza é uma solução fácil.

  1. Abrir http://aem-host:port/miscadmin for each AEM publish instance.

  2. Navegue até Replication => Agents on Publish.

  3. Clique em Editar.

  4. Debaixo de ID do usuário do agente, insira o nome de um usuário criado posteriormente, que estaria associado a esse agente.  Você poderia usar uma convenção de nomenclatura com o nome do host do site.  Por exemplo: "flush-agent-www-geometrixx-com". 

  5. Selecione a guia "Extended".

  6. Em HTTP Headers adicione outro cabeçalho.  Como o valor, insira "Host: www.geometrixx.com" onde "www.geometrixx.com" deve ser substituído por um dos hosts DNS dos sites.

  7. Clique em Ok para salvar.

  8. Acesse http://aem-host:port/useradmin e crie o usuário a partir do passo 4.

  9. Na guia do usuário Permissões, conceda ao usuário acesso de leitura a todos os caminhos que você deseja que o agente possa liberar para o site referenciado.  Por exemplo: /content/geometrixx, /content/dam, /etc, /libs, /apps, /var.

  10. Salvar.

  11. Repita as etapas 1 a 10 para todos os outros sites em cada instância de publicação.  Você estará criando um agente de limpeza para cada site em cada instância de publicação.

  12. No servidor da Web, compartilhe caminhos comuns usando links simbólicos.  Por exemplo, você pode definir links simbólicos para /content/dam, /etc, /libs, /apps e /var para um local de cache comum.  Então /content e qualquer coisa sob a raiz do cache seriam armazenados em cache separadamente.  Aqui está um exemplo de comando para a pasta /libs. 

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

  13. Agora, quando você ativa páginas em um site específico, a solicitação de liberação só é direcionada ao agente de limpeza aplicável.

Logotipo da Adobe

Fazer logon em sua conta