Habilitar almacenamiento en caché

Para cambiar el comportamiento predeterminado del almacenamiento en caché, puede actualizar los encabezados de caché de dos formas.

  1. Configuración de vhost de Dispatcher: Solo disponible para publicación en AEM.
  2. Código Java™ personalizado: disponible tanto para publicación como para autor en AEM.

Revisemos cada una de estas opciones.

Configuración de vhost de Dispatcher

Esta opción es el método recomendado para habilitar el almacenamiento en caché, pero solo está disponible para AEM Publish. Para actualizar los encabezados de caché, utilice el módulo mod_headers y la directiva <LocationMatch> en el archivo vhost del servidor HTTP de Apache. La sintaxis general es la siguiente:

<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 continuación se resume el propósito de cada encabezado y los atributos aplicables para el encabezado.

Navegador webLa red de distribución de contenido (CDN)Descripción
Cache-ControlEste encabezado controla la duración del explorador web y la caché de la CDN.
Control de sustituciónEsta cabecera controla la duración de la caché de la CDN.
CaducaEste encabezado controla la duración del explorador web y la caché de la CDN.
  • max-age: este atributo controla el TTL o el "tiempo de vida" del contenido de la respuesta en segundos.
  • stale-while-revalidate: este atributo controla el tratamiento de stale state del contenido de respuesta en la capa de CDN cuando la solicitud recibida se encuentra dentro del período especificado en segundos. El estado obsoleto es el período de tiempo después de que caduque el TTL y antes de que se vuelva a validar la respuesta.
  • stale-if-error: este atributo controla el tratamiento de stale state del contenido de respuesta en la capa de CDN cuando el servidor de origen no está disponible y la solicitud recibida se encuentra dentro del período especificado en segundos.

Revise los detalles de inactividad y revalidación para obtener más información.

Ejemplos

Para aumentar la duración de la caché del explorador web y la red de distribución de contenido (CDN) de tipo de contenido HTML a 10 minutos sin un tratamiento de estado obsoleto, siga estos pasos:

  1. En su proyecto de AEM, busque el archivo vhost deseado en el directorio dispatcher/src/conf.d/available_vhosts.

  2. Actualice el archivo vhost (p. ej. wknd.vhost) de la siguiente manera:

    <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>
    

    Los archivos vhost del directorio dispatcher/src/conf.d/enabled_vhosts son symlinks a los archivos del directorio dispatcher/src/conf.d/available_vhosts, así que asegúrese de crear enlaces simbólicos si no los hay.

  3. Implemente los cambios de vhost en el entorno de AEM as a Cloud Service deseado mediante Cloud Manager - Canalización de configuración de nivel web o Comandos RDE.

Sin embargo, para tener valores diferentes para la duración de la caché del explorador web y la CDN, puede utilizar el encabezado Surrogate-Control del ejemplo anterior. Del mismo modo, para que la caché caduque en una fecha y hora específicas, puede utilizar el encabezado Expires. Además, con los atributos stale-while-revalidate y stale-if-error, puede controlar el tratamiento del estado antiguo del contenido de la respuesta. El proyecto WKND de AEM tiene una configuración de caché de CDN tratamiento de estado obsoleto de referencia.

Del mismo modo, también puede actualizar los encabezados de caché para otros tipos de contenido (JSON, JS, CSS y Assets).