Avoid cache on zero-bytes-returned?

Jonathan Matthews contact at jpluscplusm.com
Wed Mar 13 14:40:00 UTC 2013


On 13 March 2013 14:15, AJ Weber <aweber at comcast.net> wrote:
> Is there a way to leave my default caching enabled, but tell nginx to NOT
> cache zero-byte results?  If the correct content is available in the cache,
> I want it returned without going to the back end, but in my case (at least),
> a zero-byte result for a status=200 is not valid.

It looks to me like
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_no_cache
is what you need to use.
If the backend is returning a Content-Length header, you could refer
to that. If not, you may have to get creative in assembling a map{}
variable.

FWIW, a 200 with an empty body is, (I believe) invalid. It should be a
204. If your backend is misbehaving, you might like to fix it before
mitigating the problem inside your reverse-proxy. Remember: broken
gets fixed, but shitty lives forever ...

Jonathan
-- 
Jonathan Matthews // Oxford, London, UK
http://www.jpluscplusm.com/contact.html



More information about the nginx mailing list