Compreendendo proxy_cache_bypass $http_cache_control

Compreendendo proxy_cache_bypass $http_cache_control

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-cacheignore 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-Controltiver 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 mapparaselecione 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 mapbloco deve ser colocado fora do serverbloco.

informação relacionada