Yo uso BOA para mis sitios, pero por defecto BOA simplemente deshabilita el almacenamiento en caché frontal sobre la marcha para la presentación de formularios. Más allá de mi experiencia real, me crucé con un artificial de un año sobre cómo el New Zealand Post trata con Drupal & Varnish y el problema del token de formulario. Santo John Wayne, es una lectura obligada para el almacenamiento en caché de Drupal, realmente. Centrándose solo en el problema del formulario:
La pieza final de nuestro rompecabezas es el módulo avanzado de omisión de caché de cookies , que establece automáticamente una cookie NO_CACHE especial cada vez que el usuario envía un formulario POST en el sitio, que incluye elementos como el formulario de inicio de sesión. Nuestro Barniz está configurado para omitir el caché de la página (pero no el caché ESI) cuando ve esta cookie.
También puede deshabilitar los tokens de formulario cuando no se requiere la producción de XSRF en form_alter (unset ($ form ['# token']);) o ($ form ['# token'] = FALSE;)
Un artículo de rendimiento de Acquia Drupal presenta un módulo Drupal Authcache , pero al leer el documento en Authcache, resuelve el almacenamiento en caché con un marcador de posición para el formulario (no almacena en caché el formulario):
Authcache intenta interceptar cualquier contenido personalizado y configurar un marcador de posición dentro del HTML. Luego, después de cargar la página, se utiliza una devolución de llamada Ajax para recuperar datos personalizados y completar los marcadores de posición, actualizando dinámicamente el HTML de la página.
Marcadores de posición de Authcache actuales: tokens de formulario (solo usuarios registrados; requerido por> Drupal para evitar ataques de falsificación de solicitudes entre sitios)
La estrategia es almacenar todo menos el formulario . Entonces abordando todo lo demás: ¿Quizás Varnish no se usa en absoluto, Memcache & Redis? Mi estrategia sería usar lo que ofrece BOA porque uso BOA y los asistentes detrás de él ( omega8.cc ) saben mucho más que yo. No creo que haya un caché externo que resuelva el problema. Todos parecen omitir el formulario.
Realice el almacenamiento en caché parcial con la memoria caché mencionada anteriormente y con vistas y paneles finamente modificados como se menciona en el artículo de NZ Post y se describe por la confianza del cerebro en Wunderkraut : es antiguo, pero aborda el problema.
Use el módulo Drupal ESI y Varnish es parcialmente compatible con ESI):
ESI, o Edge Side incluye, es una solución de almacenamiento en caché de alto rendimiento para usuarios autenticados, pero también puede ser útil para usuarios anónimos.
Por lo general, las páginas personalizadas para usuarios autenticados (incluso personalizaciones menores, como un bloque que dice "Conectado como administrador") evitarán que los servidores proxy inversos (que pueden funcionar fácilmente 100 veces más rápido que Drupal) almacenen en la memoria caché de la página, porque los mensajes destinado a un usuario podría ser visto por otro.
Espero que sea más útil.