Configuração do Dispatcher vhost

Essa opção é a abordagem recomendada para ativar o armazenamento em cache, no entanto, só está disponível para o AEM Publish. Para atualizar os cabeçalhos de cache, use o módulo mod_headers e a diretiva <LocationMatch> no arquivo vhost do Apache HTTP Server. A sintaxe geral é a seguinte:

<LocationMatch "$URL$ || $URL_REGEX$">
    # Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed.
    Header unset Cache-Control
    Header unset Surrogate-Control
    Header unset Expires

    # Instructs the web browser and CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
    Header set Cache-Control "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX"

    # Instructs the CDN to cache the response for 'max-age' value (XXX) seconds. The 'stale-while-revalidate' and 'stale-if-error' attributes controls the stale state treatment at CDN layer.
    Header set Surrogate-Control "max-age=XXX,stale-while-revalidate=XXX,stale-if-error=XXX"

    # Instructs the web browser and CDN to cache the response until the specified date and time.
    Header set Expires "Sun, 31 Dec 2023 23:59:59 GMT"
</LocationMatch>

A seguir está um resumo da finalidade de cada cabeçalho e dos atributos aplicáveis ao cabeçalho.

Navegador da WebCDNDescrição
Controle de cacheEsse cabeçalho controla a vida útil do navegador da Web e do cache CDN.
Surrogate-ControlEsse cabeçalho controla a vida útil do cache da CDN.
Expira emEsse cabeçalho controla a vida útil do navegador da Web e do cache CDN.
  • max-age: Este atributo controla o TTL ou o "tempo de vida" do conteúdo da resposta em segundos.
  • stale-while-revalidate: este atributo controla o tratamento do estado obsoleto do conteúdo da resposta na camada CDN quando a solicitação recebida está dentro do período especificado em segundos. O estado obsoleto é o período de tempo após a expiração do TTL e antes da revalidação da resposta.
  • stale-if-error: este atributo controla o tratamento do estado obsoleto do conteúdo da resposta na camada CDN quando o servidor de origem está indisponível e a solicitação recebida está dentro do período especificado em segundos.

Revise os detalhes de desatualização e revalidação para obter mais informações.

Exemplo

Para aumentar a vida do navegador da Web e do cache da CDN do tipo de conteúdo do HTML para 10 minutos sem tratamento de estado obsoleto, siga estas etapas:

  1. No projeto do AEM, localize o arquivo vhsot desejado do diretório dispatcher/src/conf.d/available_vhosts.

  2. Atualize o arquivo vhost (por exemplo, wknd.vhost) da seguinte maneira:

    <LocationMatch "^/content/.*\.(html)$">
        # Removes the response header if present
        Header unset Cache-Control
    
        # Instructs the web browser and CDN to cache the response for max-age value (600) seconds.
        Header set Cache-Control "max-age=600"
    </LocationMatch>
    

    Os arquivos vhost no diretório dispatcher/src/conf.d/enabled_vhosts são symlinks para os arquivos no diretório dispatcher/src/conf.d/available_vhosts. Portanto, se não houver, crie symlinks.

  3. Implante as alterações do vhost no ambiente do AEM as a Cloud Service desejado usando o Pipeline de Configuração da Camada da Web ou os Comandos RDE do Cloud Manager.

No entanto, para ter valores diferentes para a vida útil do navegador da Web e do cache CDN, você pode usar o cabeçalho Surrogate-Control no exemplo acima. Da mesma forma que para expirar o cache em uma data e hora específicas, você pode usar o cabeçalho Expires. Além disso, usando os atributos stale-while-revalidate e stale-if-error, você pode controlar o tratamento de estado obsoleto do conteúdo da resposta. O projeto WKND do AEM tem uma configuração de cache de CDN de tratamento de estado obsoleto de referência.

Da mesma forma, também é possível atualizar os cabeçalhos de cache de outros tipos de conteúdo (JSON, JS, CSS e Assets).