Disable NGINX caching 304 Responses from Origin Server
Ryan Barclay
ryan at rbftpnetworks.com
Mon Jul 24 15:20:26 UTC 2017
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.
More information about the nginx
mailing list