Pantheon Advanced Page Cache

Un puente entre los metadatos de caché de Drupal y Pantheon Global CDN que permite la invalidación automática de caché en el edge basada en el sistema de cache tags de Drupal.

pantheon_advanced_page_cache
28,288 sites
21
drupal.org

Instalar

Drupal 11, 10, 9 v2.3.4
composer require 'drupal/pantheon_advanced_page_cache:^2.3'

Overview

El módulo Pantheon Advanced Page Cache conecta el robusto sistema de metadatos de caché de Drupal con la infraestructura de Pantheon Global CDN. Cuando está habilitado, convierte automáticamente los cache tags internos de Drupal en encabezados HTTP Surrogate-Key que el CDN de Pantheon comprende.

Esto permite una invalidación de caché inteligente y granular en el edge. Cuando los datos subyacentes cambian en Drupal (como nodos actualizados, términos de taxonomía modificados o permisos de usuario cambiados), solo las páginas en caché relevantes se eliminan del CDN, en lugar de purgar toda la caché.

El módulo no requiere configuración para su funcionamiento básico. Simplemente habilítelo en un sitio alojado en Pantheon y comenzará a funcionar inmediatamente, aprovechando los metadatos de caché que Drupal 8+ ya proporciona. Este enfoque de configuración cero lo hace ideal para maximizar las tasas de aciertos de caché mientras asegura la frescura del contenido.

Features

  • Convierte automáticamente los cache tags de Drupal en encabezados HTTP Surrogate-Key para la integración con Pantheon Global CDN
  • Permite la invalidación granular de caché en el edge: solo las páginas afectadas se purgan cuando el contenido cambia
  • No requiere configuración: funciona inmediatamente tras la instalación en sitios alojados en Pantheon
  • Aplica un límite de 25KB en el tamaño del encabezado para prevenir errores 502 causados por encabezados excesivamente largos
  • Registra advertencias cuando se exceden los límites de cache tags para ayudar a los administradores a identificar oportunidades de optimización
  • Soporta comportamiento heredado opcional para el manejo de list tags mediante configuración
  • Se integra perfectamente con la Cache API de Drupal y el sistema de invalidación de cache tags

Use Cases

Sitio web de noticias de alto tráfico

Un sitio de noticias alojado en Pantheon puede habilitar este módulo para asegurar que los artículos se sirvan desde el edge CDN globalmente mientras se purgan inmediatamente cuando los editores actualizan el contenido. Cuando se edita un artículo, solo las páginas en caché de ese artículo específico se invalidan, no toda la caché.

Catálogo de productos de comercio electrónico

Un sitio de comercio electrónico se beneficia de la invalidación inteligente de caché. Cuando el precio o disponibilidad de un producto cambia, todas las páginas que muestran ese producto se purgan automáticamente del CDN, mientras que las páginas no relacionadas permanecen en caché para un rendimiento óptimo.

Páginas de listado de contenido

Cuando se publican nuevos artículos, las páginas de listado como la página principal o las páginas de categorías se purgan automáticamente (con la configuración predeterminada). Esto asegura que los visitantes vean contenido fresco sin necesidad de limpiar la caché manualmente.

Cambios en permisos de usuario

Cuando se modifican los permisos o roles de usuario, las páginas en caché afectadas se invalidan automáticamente, asegurando que los usuarios siempre vean contenido apropiado a su nivel de acceso.

Tips

  • Use curl con el encabezado Pantheon-Debug:1 para inspeccionar los encabezados Surrogate-Key-Raw: curl -IH 'Pantheon-Debug:1' https://your-site.pantheonsite.io/
  • Las páginas que renderizan muchas entidades pueden exceder los límites de encabezado - considere filtrar cache tags usando un suscriptor de eventos personalizado
  • Las nuevas instalaciones usan automáticamente la configuración recomendada - solo los sitios que actualizan desde 1.x necesitan cambios de configuración
  • El módulo funciona automáticamente con los metadatos de caché integrados de Drupal - no se necesitan cambios de código en la mayoría de los casos
  • Combínelo con Views Custom Cache Tags para un control detallado sobre los cache tags generados por Views
  • Revise /admin/reports/dblog para mensajes de advertencia sobre límites de tamaño de encabezado alcanzados

Technical Details

Drush Commands 1
drush config:set pantheon_advanced_page_cache.settings override_list_tags false

Deshabilitar el comportamiento de override de list tags (recomendado para sitios que actualizan desde 1.x)

Troubleshooting 5
Errores 502 ocurriendo en páginas con muchas entidades

Esto probablemente es causado por el encabezado Surrogate-Key excediendo los límites de tamaño. El módulo limita los encabezados a 25KB pero otros encabezados combinados pueden exceder el límite de 32KB de nginx. Revise los logs de Drupal para mensajes de advertencia. Considere usar código personalizado o el módulo Views Custom Cache Tags para filtrar cache tags redundantes.

Mensajes de advertencia sobre cache tags siendo recortados

Esto indica que las páginas están renderizando miles de entidades. Cree un suscriptor de eventos personalizado con mayor prioridad que el suscriptor del módulo (prioridad > 0) para filtrar cache tags innecesarios antes de que se añadan al encabezado. Vea el módulo de prueba para un ejemplo de implementación.

Las páginas de listado no se limpian cuando se añade nuevo contenido (después de actualizar desde 1.x)

Ejecute: drush config:set pantheon_advanced_page_cache.settings --input-format=yaml override_list_tags false - o desinstale y reinstale el módulo para obtener el nuevo comportamiento predeterminado.

No se pueden verificar los encabezados Surrogate-Key en el navegador

Pantheon elimina el encabezado Surrogate-Key antes de enviar respuestas a los clientes. Use curl con el encabezado de depuración para ver los encabezados sin procesar: curl -IH 'Pantheon-Debug:1' https://your-site.pantheonsite.io/

El módulo parece no hacer nada

El módulo solo funciona en sitios alojados en Pantheon donde la función pantheon_clear_edge_keys() está disponible. En alojamiento no-Pantheon, el módulo no hace nada de manera elegante.

Security Notes 3
  • El módulo tiene cobertura de avisos de seguridad 'covered' del Drupal Security Team
  • No se exponen datos sensibles - los encabezados Surrogate-Key solo contienen identificadores de cache tags
  • El módulo depende del sistema de cache tags existente de Drupal y no introduce nuevos vectores de ataque