Welcome! Log In Create A New Profile


Nginx ignores proxy_no_cache

Kirill A. Korinsky
April 07, 2024 07:38AM

Let assume that I would like behavior on LB from the backend and force it to
cache only resposnes that have a X-No-Cache header with value NO.

Nginx should cache a response with any code, if it has such headers.

This works well until the backend is unavailable and nginx returns a
hardcoded 502 that doesn't have a control header, but such a response is
cached anyway.

Here is the config that allows to reproduce the issue:

http {
default_type application/octet-stream;

proxy_cache_path /tmp/nginx_cache keys_zone=the_zone:1m;
proxy_cache the_zone;
proxy_cache_valid any 15m;
proxy_cache_methods GET HEAD POST;

add_header X-Cache-Status $upstream_cache_status always;

map $upstream_http_x_no_cache $no_cache {
default 1;
"NO" 0;

proxy_no_cache $no_cache;

upstream echo {

server {
listen 1234;
server_name localhost;

location / {
proxy_pass http://echo;

when I run:

curl -D -

it returns MISS on the first request, and HIT on the second one.

Here I expect both requests to return MISS.

wbr, Kirill
nginx mailing list
Subject Author Posted

Nginx ignores proxy_no_cache

Kirill A. Korinsky April 07, 2024 07:38AM

Re: Nginx ignores proxy_no_cache

Maxim Dounin April 07, 2024 09:58AM

Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 336
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready