Welcome! Log In Create A New Profile

Advanced

Nginx ignores proxy_no_cache

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

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 127.127.127.127:80;
}

server {
listen 1234;
server_name localhost;

location / {
proxy_pass http://echo;
}
}
}

when I run:

curl -D - http://127.0.0.1:1234/

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
nginx@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx
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: 250
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