Gabriel Finkelstein
November 30, 2021 04:36PM
Triggering proxy_cache_bypass on a request that was previously cached,
will serve a fresh response from upstream. But if that response now
returns a Cache-Control: no-cache header, the old cached response is not
replaced nor cleared. Which means that subsequent requests that do not
trigger proxy_cache_bypass will keep serving an old response.

I guess this is an intended behavior, because proxy_cache_bypass only
*replaces* cached responses by storing a fresh one, and a no-cache
response means there is nothing to store? Is this what's happening?

Is there a way to work around this?

I'm running nginx/1.14.2 . Relevant settings:

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my-cache:70m
max_size=28g inactive=1d;
proxy_temp_path /var/cache/nginx/tmp;
proxy_cache my-cache;
proxy_cache_key $remote_user$scheme$host$request_uri;

proxy_cache_use_stale error timeout invalid_header http_500 http_502
http_503 http_504 http_429;

proxy_cache_bypass $http_cache_control;

proxy_read_timeout 90;
add_header X-Cache-Status $upstream_cache_status;

etag off;


nginx mailing list
Subject Author Posted

proxy_cache_bypass: How to make "Cache-Control: no-cache" clear old cached response?

Gabriel Finkelstein November 30, 2021 04:36PM

Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 100
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