Para desativar o cache em solicitações HEAD, é necessário usar alguma lógica extra, por exemplo:
server {
...
resolver 127.0.0.1;
location / {
error_page 420 = @skip_cache;
error_page 421 = @use_cache;
if ( $request_method = 'GET' )
{
return 421;
}
return 420;
}
location @use_cache {
internal;
proxy_cache cache;
proxy_cache_key "...";
proxy_cache_valid 200 1h;
proxy_buffering off;
proxy_pass ...;
}
location @skip_cache {
internal;
proxy_buffering off;
proxy_pass ...;
}
}
Não encontrei uma maneira de impedir que o nginx altere o HEAD para GET quando o cache estiver ativado: - (.