Invalidate just one page under a location directive.

Quintin Par quintinpar at gmail.com
Thu Feb 9 03:28:57 UTC 2012


Thanks Antonio.

Great deal of help.

Looking into the wiki I see

“The following response headers flag a response as uncacheable unless they
are ignored <http://wiki.nginx.org/HttpProxyModule#proxy_ignore_headers>:

Set-Cookie

Cache-Control containing "no-cache", "no-store", "private", or a "max-age"
with a non-numeric or 0 value

Expires with a time in the past

X-Accel-Expires: 0“

This also means that if I send a curl call from my backend with a
Cache-Control : max-age=1, then the corresponding request/page in cache
will get invalidated the next second.

X-Accel-Expires also does the same thing I suppose. That solves my dilemma.

-Quintin
On Wed, Feb 8, 2012 at 10:40 PM, António P. P. Almeida <appa at perusio.net>wrote:

> On 8 Fev 2012 16h22 WET, quintinpar at gmail.com wrote:
>
> > Invalidate a cache page using the bypass mechanism
> > proxy_cache_bypass, not expiration
>
> IMHO the best option would be from the application side send a
> 'X-Accel-Expires: 0' header. But this needs to be done at the *app
> level*.
>
> Unless you place something in the headers that the application returns
> Nginx there's no way of Nginx to know what is going on.
>
> > To put it simply, Invalidate cache for a particular key entry but
> > not all of the cache
>
> > e.g for
> >
> > location = /vehicles {
> >
> > proxy_cache_key         $request_uri;
> >
> > }
> >
> > Hashtable for cache:
> >
> > [
> >
> > http://jj.com/vehicles/cars => cached page for cars
> >
> > http://jj.com/vehicles/bus => cached page for bus
> >
> > http://jj.com/vehicles/bike=> cached page for bike
> > + 10,000 key, values
> > ]
>
>
> > I should be able to invalidate just "cars" because my page for cars
> > have changed but not others. Say a person added a comment in the
> > cars page.  Another analogy is to invalidate cache for a single blog
> > post when all the blog posts have been cached under a single
> > location directive.  -Quintin
>
> Send a 'X-Accel-Expires: 0' header from the application at:
>
> http://jj.com/vehicles/cars
>
> --- appa
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20120209/5d576b04/attachment-0001.html>


More information about the nginx mailing list