Antes de mais nada, você deve verificar de onde o Varnish está servindo a imagem. Está fazendo o cache da imagem ou usando o backend a cada vez?
Você pode verificar isso de várias maneiras:
- Use a opção de linha de comando para rastrear a VCL e ver exatamente o que a solicitação está fazendo (
-p vcl_trace=true
se minha memória funcionar bem. - Use
varnishlog
para assistir a alguma solicitação para a imagem e ver o que está acontecendo (se estiver sendo veiculada do cache, etc). Você deve usar isto se você definir ovcl_trace
. - Adicione um cabeçalho à entrega da resposta e examine-o no navegador para ver se foi um sucesso ou um fracasso.
Assim:
sub vcl_deliver {
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
unset resp.http.cookie;
} else {
set resp.http.X-Cache = "MISS";
}
}
Ele adicionará um cabeçalho X-cache em cada solicitação que o Varnish publica. Depois de verificar se o verniz está, de fato, fazendo o cache corretamente, podemos procurar o motivo do longo tempo para responder, mas suponho que observar as solicitações no rastreio lhe dará algumas dicas.