Cloudflare
Proporciona integración con CloudFlare CDN utilizando la API de CloudFlare para la limpieza de caché y la restauración de IP del cliente.
cloudflare
Overview
El módulo CloudFlare proporciona una integración completa con el servicio CDN de CloudFlare utilizando la API de CloudFlare. Permite que los sitios Drupal se comuniquen con CloudFlare para la gestión de caché y la identificación adecuada del cliente.
Las capacidades principales incluyen la limpieza de caché por ruta (recomendado para los niveles Free y Professional) y por etiqueta (solo nivel Enterprise), así como la restauración de la dirección IP original del cliente que queda enmascarada cuando CloudFlare opera como proxy inverso. El módulo utiliza un enfoque de configuración basado en asistente para facilitar la configuración de las credenciales de API y la selección de zona.
El módulo incluye el submódulo CloudFlare Purger que se integra con el módulo Purge de Drupal para proporcionar invalidación automática de caché a través de la API de CloudFlare. Admite purga basada en etiquetas, basada en URL y purga completa de caché, con protección integrada contra límites de velocidad y verificaciones de diagnóstico.
Features
- Limpieza de caché por ruta URL (niveles Free y Professional)
- Limpieza de caché por etiquetas de caché (solo nivel Enterprise)
- Restauración automática de la dirección IP original del cliente desde el encabezado CF-Connecting-IP de CloudFlare
- Validación de solicitudes entrantes contra los rangos de IP de CloudFlare por seguridad
- Soporte para métodos de autenticación tanto por clave API/correo electrónico como por token API
- Soporte multi-zona para cuentas con múltiples zonas de CloudFlare
- Filtrado de zonas por nombre para una selección más fácil
- Configuración de host de bypass para suprimir advertencias en dominios de usuarios autenticados
- Middleware HTTP para procesamiento de solicitudes en la etapa más temprana
- Generación de encabezados de etiquetas de caché en formato compatible con CloudFlare con compresión basada en hash
- Integración con el módulo Purge de Drupal para invalidación automática de caché
- Verificaciones de diagnóstico para credenciales de API, límites de velocidad y límites diarios de purga de etiquetas
- Lista de exclusión de etiquetas de caché para evitar que etiquetas específicas se incluyan en los encabezados
Use Cases
Gestión de caché CDN para actualizaciones de contenido
Cuando los editores publican o actualizan contenido en Drupal, el módulo Purge automáticamente pone en cola las invalidaciones de caché. El CloudFlare Purger procesa estos elementos en cola y envía solicitudes de purga a la API de CloudFlare, asegurando que los visitantes vean contenido actualizado sin limpieza manual de caché.
Restauración de direcciones IP de visitantes
Cuando CloudFlare hace proxy de solicitudes, el servidor ve la IP de CloudFlare en lugar de la IP real del visitante. Habilite 'Restaurar dirección IP del cliente' para que el módulo restaure automáticamente la IP original del visitante desde el encabezado CF-Connecting-IP de CloudFlare. Esto es esencial para análisis precisos, registro de accesos y funcionalidad basada en geolocalización.
Purga de etiquetas de caché Enterprise
Para clientes de CloudFlare Enterprise, habilite la purga de caché basada en etiquetas para invalidación quirúrgica de caché. Cuando se actualiza un nodo específico, solo se purgan las páginas que contienen las etiquetas de caché de ese nodo, en lugar de limpiar toda la caché del CDN. El módulo aplica hash automáticamente a las etiquetas de caché para ajustarse a los límites de tamaño de encabezado de CloudFlare.
Configuración multi-sitio o multi-dominio
Para cuentas de CloudFlare con múltiples zonas, use el filtro de nombre de zona para limitar las zonas mostradas, luego seleccione una o más zonas para gestionar. El módulo enviará solicitudes de purga a todas las zonas seleccionadas.
Dominio editorial separado
Para usuarios del nivel Free que no pueden usar la función de variación por cookie de CloudFlare, configure un dominio editorial separado (por ejemplo, edit.ejemplo.com) que evite CloudFlare. Establezca esto como el 'Host para evadir CloudFlare' para suprimir mensajes de advertencia cuando los editores acceden al sitio directamente.
Tips
- Para cuentas CloudFlare de nivel Free, las etiquetas de caché no funcionarán - use purga basada en URL a través del módulo purge_queuer_url en su lugar
- Establezca la edad máxima de caché de página a un valor alto (31536000 segundos = 1 año) ya que CloudFlare maneja la invalidación de caché
- El módulo almacena en caché los rangos de IP de CloudFlare permanentemente; limpie la caché si CloudFlare actualiza sus rangos de IP
- Use la interfaz de Purge en /admin/config/development/performance/purge para monitorear el estado de purga y las verificaciones de diagnóstico
- Las etiquetas de caché se convierten a hash de cadenas de 4 caracteres para ajustarse a los límites de encabezado de CloudFlare; esto puede causar sobre-invalidación ocasional debido a colisiones de hash
- Para eventos de alto tráfico, considere el potencial de colisiones de hash de etiquetas de caché que podrían causar purgas de páginas no deseadas
- Se recomiendan los tokens de API sobre las claves de API ya que pueden tener permisos específicos delimitados
Technical Details
Admin Pages 3
/admin/config/services/cloudflare
Página de configuración principal para la integración de CloudFlare. Utiliza un enfoque de asistente de dos pasos: primero configurar las credenciales de API, luego seleccionar la(s) zona(s) de CloudFlare.
/admin/config/services/cloudflare/{step}
Segundo paso del asistente de configuración donde los usuarios seleccionan una o más zonas de CloudFlare de su cuenta.
/admin/config/services/cloudflare/purger
Configurar la lista de exclusión de etiquetas de caché para CloudFlare Purger.
Permissions 1
Hooks 1
hook_help
Implementa hook_help() para proporcionar texto de ayuda en la página de ayuda del módulo.
Troubleshooting 8
Habilite 'Restaurar dirección IP del cliente' en la configuración de CloudFlare. Asegúrese de que las solicitudes realmente lleguen a través de CloudFlare verificando el encabezado CF-Connecting-IP.
Esta advertencia aparece cuando el módulo espera CloudFlare pero las solicitudes llegan directamente. Configure un host de bypass para dominios editoriales, o verifique que su configuración DNS enrute el tráfico a través de CloudFlare.
Esto indica que una solicitud tiene el encabezado CF-Connecting-IP pero la IP de conexión no es de CloudFlare. Podría ser un problema de seguridad (encabezados falsificados) o una configuración legítima como ingress de Kubernetes. Si es legítimo, deshabilite 'Validar dirección IP remota' (con precaución).
La purga por etiquetas de caché solo está disponible en planes CloudFlare Enterprise. Use purga basada en URL para cuentas de nivel Free y Professional.
CloudFlare limita las llamadas de API a 1,200 solicitudes por 5 minutos. Reduzca la frecuencia de purga agrupando actualizaciones de contenido, usando el procesador de cola de purga con intervalos apropiados, o excluyendo etiquetas de caché de alta frecuencia de la purga.
CloudFlare Enterprise tiene un límite de 30,000 purgas de etiquetas por día. Considere usar purga basada en URL para contenido menos crítico, o implementar una lista de exclusión de etiquetas de caché para etiquetas que cambian frecuentemente pero no son críticas.
Este error fue corregido en versiones recientes. Actualice a la última versión del módulo para resolver problemas de paginación de zonas.
Verifique que las credenciales de API tengan permiso para acceder a las zonas. Para tokens de API, asegúrese de que el token tenga permiso 'Zone:Read'. Intente acceder a la consola de CloudFlare para verificar que existan zonas.
Security Notes 5
- Las credenciales de API (clave/correo electrónico o token) se almacenan en la configuración de Drupal. Asegúrese de que las exportaciones de configuración estén debidamente protegidas y no se confirmen en repositorios públicos.
- El permiso 'administer cloudflare' está marcado como restringido debido al acceso a credenciales de API sensibles.
- Cuando 'Validar dirección IP remota' está deshabilitado, el módulo confía en el encabezado CF-Connecting-IP sin verificar la fuente de la solicitud. Esto podría permitir suplantación de IP si las solicitudes pueden evadir CloudFlare.
- El módulo obtiene los rangos de IP de CloudFlare desde https://www.cloudflare.com/ips-v4 e ips-v6. Asegúrese de que el acceso HTTP saliente esté disponible.
- Considere usar tokens de API de CloudFlare en lugar de claves de API para mejor seguridad a través de la limitación de alcance.