
De acordo comDocumento do Nginxsobreproxy_cache_bypass
Define condições sob as quais a resposta não será obtida de um cache. Se pelo menos um valor dos parâmetros da string não estiver vazio e não for igual a “0”, então a resposta não será obtida do cache:
Quero que a solicitação com o cabeçalho Cache-Control: no-cache
ignore o cache do Nginx e seja encaminhada para o serviço upstream. Devo usar a seguinte configuração?
proxy_cache_bypass $http_cache_control;
Eu perguntei porque parece que o Nginx irá ignorar o cache sempre que Cache-Control
tiver um valor diferente de zero, sem verificar se seu conteúdo é no-cache
. Se não, qual seria a melhor forma de atingir meu objetivo?
Responder1
Você está certo. Você deve usar um map
paraselecione o valor corretopara controlar o cache.
Por exemplo:
map $http_cache_control $cache_bypass {
no-cache 1;
}
proxy_cache_bypass $cache_bypass;
Observe que o map
bloco deve ser colocado fora do server
bloco.