Sou relativamente novo no cache com o Varnish, mas eis o que aprendi até agora: há vários fatores a serem considerados ao usar o Varnish para armazenar em cache em um aplicativo.
No seu caso, saiba quais cookies estão sendo definidos e com qual finalidade. Se o verniz vir um cookie com sua solicitação, você será passado para o backend, resultando em uma falha de cache.
Cookies do Google Analytics
Se você estiver usando os cookies do Google Analytics, poderá desativá-los com segurança no verniz. não se preocupe, você ainda manterá os dados nos relatórios do GA. Use algo assim em seu vcl_recv
set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|__utma_a2a)=[^;]*", "");
Você pode tentar mais algumas linhas de limpeza, também no vcl_recv
Remover ";" prefixos de cookies
set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");
Cancelar cookies vazios
if (req.http.Cookie ~ "^\s*$") {
unset req.http.Cookie;
}
Cookies específicos de aplicativos
Se o seu aplicativo definir um cookie quando um usuário fizer login para executar uma função, essas solicitações não serão armazenadas em cache e enviadas diretamente para o back-end. Caso contrário, você poderia armazenar em cache páginas visualizadas por usuários logados (ruins).
Use algo assim:
if (req.http.Authorization || req.http.Cookie) {
return (pass);
}
HTH & boa sorte.
Editar
Use isso para ver o que o verniz dos cookies está passando:
varnishtop -i RxHeader -I Cookie
Se você está com saudade de algum, pegue-os aqui!