
В соответствии сДокументация Nginxнаproxy_cache_bypass
Определяет условия, при которых ответ не будет взят из кэша. Если хотя бы одно значение строковых параметров не пустое и не равно «0», то ответ не будет взят из кэша:
Я хочу, чтобы запрос с заголовком Cache-Control: no-cache
обходил кэш Nginx и перенаправлялся в вышестоящую службу. Использовать следующую конфигурацию?
proxy_cache_bypass $http_cache_control;
Я спросил, потому что, похоже, Nginx обходит кэш всякий раз, когда Cache-Control
имеет ненулевое значение, не проверяя, является ли его содержимое no-cache
. Если нет, то какой лучший способ достичь моей цели?
решение1
Вы правы. Вам следует использовать a map
toвыберите правильное значениедля управления кэшем.
Например:
map $http_cache_control $cache_bypass {
no-cache 1;
}
proxy_cache_bypass $cache_bypass;
Обратите внимание, что map
блок должен быть размещен снаружи server
блока.