Hello! On Thu, May 30, 2013 at 06:41:50AM -0400, kapouer wrote:
> Hi, > i struggled a little to get nginx to cache 304 responses from backend using > proxy_cache. > What happens when configuring proxy_cache is that 304 responses are not > happening because > nginx strips If-None-Match request headers. It is a workaround to prevent > the client from getting > an empty response event if he did not send If-None-Match in the header. > A better workaround can be : > > proxy_cache_key $http_if_none_match$scheme$proxy_host$request_uri; > > So that the cache sends 304 if the header is properly set, and 200 if it > isn't. > Of course one has to kill the first workaround : > > proxy_set_header If-None-Match $http_if_none_match; > > and cache both responses : > > proxy_cache_valid 200 304 1h; > > Comments welcome. Normally you shouldn't cache 304 responses from a backend, but rather cache 200 responses from a backend and let nginx to return 304 by its own. This is how it works by default. Do you have problems with the default aproach? -- Maxim Dounin http://nginx.org/en/donation.html _______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
