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 Web | CDN | Descrição | |
---|---|---|---|
Controle de cache | ✔ | ✔ | Esse cabeçalho controla a vida útil do navegador da Web e do cache CDN. |
Surrogate-Control | ✘ | ✔ | Esse cabeçalho controla a vida útil do cache da CDN. |
Expira em | ✔ | ✔ | Esse 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:
-
No projeto do AEM, localize o arquivo vhsot desejado do diretório
dispatcher/src/conf.d/available_vhosts
. -
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óriodispatcher/src/conf.d/available_vhosts
. Portanto, se não houver, crie symlinks. -
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).