Eu uso o BOA nos meus sites, mas, por padrão, o BOA simplesmente desativa o cache de front-end em tempo real para o envio de formulários. Além da minha experiência real, deparei com uma cruz de um ano de idade artificial sobre como o New Zealand Post lida com Drupal & Varnish e a questão do token de formulário. Santo John Wayne, é uma leitura obrigatória para o cache do Drupal - realmente. Focalizando apenas a questão do formulário:
A peça final do nosso quebra-cabeça é o módulo Cookie Cache Bypass Advanced , que define automaticamente um cookie NO_CACHE especial sempre que o usuário envia um formulário POST no site, incluindo itens como o formulário de login. Nosso Varnish está configurado para ignorar o cache da página (mas não o cache ESI) quando vê esse cookie.
Você também pode desativar os tokens de formulário quando a produção XSRF não for adquirida em form_alter (desmarcado ($ form ['# token']);) ou ($ form ['# token'] = FALSE;)
Um artigo de desempenho do Acquia Drupal apresenta um Authcache do módulo Drupal , mas, ao ler o documento no Authcache, ele realiza o cache com um espaço reservado para o formulário (sem armazenar o formulário):
O Authcache tenta interceptar qualquer conteúdo personalizado e configurar um espaço reservado no HTML. Depois que a página é carregada, um retorno de chamada do Ajax é usado para recuperar dados personalizados e preencher os espaços reservados, atualizando dinamicamente o HTML da página.
Marcadores de posição atuais do Authcache: tokens de formulário (somente usuários conectados; exigido por> Drupal para impedir ataques de falsificação de solicitação entre sites)
A estratégia é armazenar tudo em cache , exceto o formulário . Então, abordando todo o resto: talvez o Varnish não seja usado, Memcache & Redis? Minha estratégia seria usar o que o BOA oferece, porque eu uso o BOA e os assistentes por trás dele ( omega8.cc ) sabem muito mais do que eu. Eu não acho que exista um cache externo que resolva o problema. Todos eles parecem ignorar o formulário.
Faça cache parcial com o authcache acima mencionado e com os Views and Panels aprimorados, como mencionado no artigo da NZ Post e descrito pela confiança no cérebro do Wunderkraut - antigo, mas aborda o problema.
Use o Drupal ESI Module e o verniz é parcialmente compatível com ESI):
O ESI - ou Edge Side Include - é uma solução de cache de alto desempenho para usuários autenticados, mas também pode ser útil para usuários anônimos.
Normalmente, as páginas personalizadas para usuários autenticados (mesmo pequenas personalizações, como um bloco que diz "Conectado como manarth") impedirão que proxies reversos (que podem executar facilmente 100 vezes mais rápido que o Drupal) armazenem em cache a página, porque as mensagens destinado a um usuário pode ser visto por outro.
Espero que seja mais útil.