Disable NGINX caching 304 Responses from Origin Server

Zhang Chao zchao1995 at gmail.com
Tue Jul 25 01:35:59 UTC 2017


Hi!

Have you used the proxy_cache_valid
<http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_valid>
?

Maybe you can add this directive to disable the 304 cache explicitly.

proxy_cache_valid 304 0;


On 24 July 2017 at 23:20:35, Ryan Barclay (ryan at rbftpnetworks.com) wrote:

We have a pretty simple setup with NGINX sitting on the front and a
backend server (on a separate physical server) that provides the content.

Nginx then caches content based on the EXPIRES and Cache-Control headers
set by the origin server.

We noticed that NGINX was not issuing 304 headers to images that were
not in the local NGINX cache when the If-Modified-Since header was sent
by the client. Instead, it would issue a 200 with the full data file.

To fix this, we applied:
proxy_set_header If-Modified-Since $http_if_modified_since

So then the If-Modified-Since header was passed to the backend and of
course, it returned correctly with the 304 header - great.

But what we noticed was that NGINX would cache this 304 response and
deliver future responses as 304 to clients even without the
If-Modified-Since header.

How can we disable caching of 304 responses and fix this issue?

Thank you for your help, suggestions, and tips in advance.
_______________________________________________
nginx mailing list
nginx at nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20170724/22ea7691/attachment.html>


More information about the nginx mailing list