[NGINX] proxy_cache_use_stale updating and X-Accel-Expires=0

Jérôme Loyet jerome at loyet.net
Sat Jul 31 02:05:21 MSD 2010


2010/7/30 Maxim Dounin <mdounin at mdounin.ru>
>
> Hello!
>
> On Wed, Jul 21, 2010 at 11:06:26AM +0200, Jérôme Loyet wrote:
>
> > I have a strange situation. I don't really know if it's a bug or a feature.
> >
> > I'm using nginx as a cached reverse proxy to apache/mod_php.
> >
> > I have the following (simplified) conf:
> >
> > proxy_cache_use_stale updating error timeout invalid_header http_500
> > http_502 http_503 http_504;
>
> [...]
>
> > Some pages returns the X-Accel-Expires=0 header to exclude a page from
> > the cache. It works great. But sometimes, nginx returns those page
> > with a 404 response without fetching the page to the backend server.
> > Those pages are marked as UPDATING in logs.
>
> Directive proxy_cache_use_stale set to "updating" instructs nginx
> to return stale cached response if one request to the same uri
> is already goes to backend.
>
> > How a page excluded from the cache can be wrongly (404 instead of 200)
> > served by the cache with an UPDATING status ?
>
> Looks like you happen to have stale document with 404 status in
> cache (e.g. cached during debugging).  It's not expunged from
> cache as it's active (i.e. frequently requested), and not updated
> in cache as you return X-Accel-Expires=0 in responses.
>
> But it's in cache, and once you get more than one simulteneous
> request to this document - nginx returns stale response from cache
> as it was said to.

the page always return X-Accel-Expires=0, should it not be recorded in
the cache ?

>
> Maxim Dounin
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://nginx.org/mailman/listinfo/nginx



More information about the nginx mailing list