Ok, resolvi: O verniz não remove o cabeçalho If-None-Match. Foi apenas o meu aplicativo da web entregue a partir do cache, enquanto as solicitações ainda estavam chegando. O Chrome exibiu a versão antiga da página. TOSSE. TOSSE. TOSA.
Eu gostaria de usar o cache etag diretamente no meu aplicativo / verificar o eTag no meu aplicativo. Como é possível rotear o cabeçalho "If-None-Match" para os backends? Parece que o Varnish está cortando esse cabeçalho por padrão.
Você pode reescrevê-lo para um cabeçalho diferente que o verniz não conhece e ler esse cabeçalho no back-end.
No topo de vcl_recv, tente:
set req.http.X-If-None-Match-Previously = req.http.If-None-Match;
e, em seguida, leia o cabeçalho X-If-None-Match-Previous no seu aplicativo.
Não sei ao certo como isso vai interagir com o seu armazenamento em cache, mas isso passará os dados do cabeçalho se o Varnish estiver removendo-o de suas solicitações de back-end.
Tags cache load-balancing varnish