I can’t see an obvious issue, but I can say that there is no such thing as a simple web server setup where caching is involved. I have gray hairs that appeared after working with a high traffic retail website that had seven levels of caching (browser cache, CDN, hardware load balancer, nginx reverse proxy, servlets that write content, tangosol /oracle coherence, endeca caching)
I’m hoping that you are living in a saner world than that one but I’m sure that you will have some craziness. I would encourage you to add $upstream_cache_status to your log format and/or add the directive add_header X-Cache-Status $upstream_cache_status; Instrumenting the cache can be a real life-saver when things go awry. I’d also strongly encourage you to use redbot.org to check for aberrant behavior and webpagetest.org to see how different browsers handle your site. Peter > On Jul 26, 2017, at 3:29 AM, Ryan Barclay <r...@rbftpnetworks.com> wrote: > > The following config seems to work for the situation I discussed: > > proxy_cache_valid 200 3M; > proxy_cache_valid 304 0; > proxy_cache_revalidate on; > proxy_set_header If-Modified-Since $http_if_modified_since; > proxy_ignore_headers Cache-Control Expires; > > > ... can anybody see any problems with this config or future problems that may > arise? > > > On 24/07/2017 16:20, Ryan Barclay 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@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx
_______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx