Problemas de configuración de caché de Control y CDN/Dispatcher en AEM
AEM Dispatcher y las CDN descendentes como Fastly y Akamai devuelven un comportamiento de almacenamiento en caché inesperado: valores de Cache-Control que no coinciden con el TTL deseado, solo la primera variación del contenido dinámico que se almacena en caché, URL de Dynamic Media sin encabezado Cache-Control y respuestas antiguas que persisten tras la invalidación. No aparece ningún error en los registros: el problema aparece en los encabezados de respuesta HTTP o en un comportamiento de caché incoherente. La causa es incorrecta o falta la configuración de Cache-Control o la lógica cache-key en la capa Dispatcher o CDN, ya que las CDN respetan los encabezados ascendente y no almacenan en caché de forma predecible cuando esos encabezados no están configurados. La configuración de encabezados explícitos de Control de caché en Dispatcher, el ajuste de la clave de caché para las variaciones dinámicas y la configuración de conjuntos de reglas para los recursos de Dynamic Media restaura un almacenamiento en caché correcto y predecible.
Descripción description
Entornos:
- Adobe Experience Manager as a Cloud Service
- Adobe Experience Manager Managed Services
- Adobe Experience Manager local
- AEM Dispatcher y el servidor HTTP Apache
- Capas de CDN como Fastly y Akamai
- Dynamic Media (Scene7)
Problema/Síntomas:
- Los valores de control de caché como
max-ageos-maxageno coinciden con los valores esperados, como un valor predeterminado demax-age=300omax-age=60, s-maxage=7200. - La CDN almacena en caché solo la primera variación del contenido procesado dinámicamente.
- Las direcciones URL de Dynamic Media (Scene7) no devuelven un encabezado Cache-Control.
- Dispatcher o la CDN siguen ofreciendo respuestas en caché incluso después de la invalidación esperada.
- No puede omitir la red de distribución de contenido (CDN) o Dispatcher para ver la salida de origen.
Causa principal:
La causa raíz es incorrecta o falta la configuración de los encabezados Cache-Control o la lógica cache-key en la capa Dispatcher o CDN. Las CDN, como Fastly y Akamai, respetan los encabezados de control de caché de flujo ascendente, y los valores predeterminados de Dispatcher influyen en lo que almacena en caché la CDN, por lo que cuando los encabezados no se configuran explícitamente, la CDN almacena en caché las respuestas de forma inesperada. El contenido dinámico se almacena en caché cuando la clave de caché no varía según los atributos específicos del usuario. Dynamic Media y Scene7 requieren la configuración de un conjunto de reglas para generar encabezados de control de caché.
Cómo confirmar
- Compruebe el encabezado actual de Cache-Control desde un navegador o con curl. Ejecute
curl -I https://example.com/path/to/page.htmle inspeccione el valor Cache-Control, comopublic, max-age=60, s-maxage=7200omax-age=300. Confirme que coincide con lo que espera en la producción. Si falta completamente el encabezado, aplique una configuración explícita en la resolución. - Compruebe si la CDN almacena en caché solo por dirección URL. Solicite la misma dirección URL dos veces y espere un resultado dinámico diferente. Si ambas respuestas son idénticas, la CDN o Dispatcher solo almacenan en caché la primera variación.
- Omita las cachés para ver el resultado del origen. Anexe un parámetro de consulta a la dirección URL, como
https://example.com/page.html?q=123, para omitir la CDN y Dispatcher. La respuesta devuelve el resultado del editor de origen, que puede comparar con la respuesta en caché.
Resolución resolution
Siga estos pasos para resolver el problema:
- Establezca los valores de Cache-Control en la configuración de Dispatcher. Actualice las reglas donde se definen los encabezados Cache-Control. En AEM as a Cloud Service, edite el código Dispatcher en el repositorio del proyecto e impleméntelo mediante Cloud Manager. En Managed Services y de forma local, actualice la configuración de Apache y Dispatcher en el servidor o a través de la canalización de Cloud Manager. Después de la implementación, ejecute
curl -Ide nuevo para confirmar que los encabezados reflejen el TTL actualizado. - Configure el almacenamiento en caché de las variaciones dinámicas cuando corresponda. Si el contenido debe variar según el parámetro, incluya los parámetros de consulta o cookies necesarios en la clave de caché, configurada en las reglas de Dispatcher. Envíe varias solicitudes con diferentes parámetros y confirme que la CDN devuelve respuestas distintas.
- Establezca encabezados de control de caché para los recursos de Dynamic Media y Scene7. Utilice los conjuntos de reglas Dynamic Media y Scene7 para establecer el encabezado Cache-Control con el valor
max-age=Nque desee. Ejecutecurl -Ien la dirección URL de Dynamic Media, comois/image/..., y compruebe que aparece el encabezado Cache-Control. - Borre o omita la caché para validar el resultado. Después de los cambios de configuración, ejecute
curl -Ide nuevo y confirme que el encabezado Cache-Control coincide con el TTL deseado. Cuando haya disponibles encabezados de depuración de CDN, compruebe que CDN devuelve el TTL actualizado y confirme las variaciones dinámicas solicitando contenido para varios usuarios o parámetros.
Si el problema persiste
Póngase en contacto con el Soporte técnico de Adobe con la salida curl -I de las direcciones URL afectadas, los fragmentos de configuración de Dispatcher que controlan Cache-Control, los detalles de capa de CDN como Akamai o Fastly y una descripción del comportamiento esperado frente a real.