Понимание proxy_cache_bypass $http_cache_control

Понимание proxy_cache_bypass $http_cache_control

В соответствии сДокументация Nginxнаproxy_cache_bypass

Определяет условия, при которых ответ не будет взят из кэша. Если хотя бы одно значение строковых параметров не пустое и не равно «0», то ответ не будет взят из кэша:

Я хочу, чтобы запрос с заголовком Cache-Control: no-cacheобходил кэш Nginx и перенаправлялся в вышестоящую службу. Использовать следующую конфигурацию?

proxy_cache_bypass $http_cache_control;

Я спросил, потому что, похоже, Nginx обходит кэш всякий раз, когда Cache-Controlимеет ненулевое значение, не проверяя, является ли его содержимое no-cache. Если нет, то какой лучший способ достичь моей цели?

решение1

Вы правы. Вам следует использовать a maptoвыберите правильное значениедля управления кэшем.

Например:

map $http_cache_control $cache_bypass {
    no-cache   1;
}

proxy_cache_bypass $cache_bypass;

Обратите внимание, что mapблок должен быть размещен снаружи serverблока.

Связанный контент