<p class="MsoNoSpacing">Not directly related, but here’s an entry from 37Signal’s
David who talks about invalidating individual cache entries and keeping it
clean as opposing to a whole purge. </p>

<p class="MsoNoSpacing"><a href="http://37signals.com/svn/posts/3112-how-basecamp-next-got-to-be-so-damn-fast-without-using-much-client-side-ui">http://37signals.com/svn/posts/3112-how-basecamp-next-got-to-be-so-damn-fast-without-using-much-client-side-ui</a></p>



<p class="MsoNoSpacing">This is the way they keep cache fresh in with Basecamp,
though it is in memcached. </p><p class="MsoNoSpacing">- Quintin</p><br><div class="gmail_quote">On Sat, Feb 11, 2012 at 11:53 PM, Max <span dir="ltr"><<a href="mailto:nginxyz@mail.ru">nginxyz@mail.ru</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
<br>
11 февраля 2012, 04:07 от António P. P. Almeida <<a href="mailto:appa@perusio.net">appa@perusio.net</a>>:<br>
<div class="im">> On 10 Fev 2012 17h47 WET, <a href="mailto:nginxyz@mail.ru">nginxyz@mail.ru</a> wrote:<br>
><br>
> ><br>
> > The default behaviour is not to cache POST method request responses,<br>
> > but I turned caching of POST method request responses ON, so I had<br>
> > to make sure the cache is bypassed for POST method requests (but<br>
> > not for GET or HEAD method requests!). All POST method requests<br>
> > are passed on to the backend without checking for a match in the<br>
> > cache, but - CONTRARY to the default behavior - all POST method<br>
> > request responses are cached.<br>
> ><br>
> > Without the @post_and_refresh_cache location block and without<br>
> > the proxy_cache_bypass directive, nginx would check the cache<br>
> > and return the content from the cache (put there by a previous<br>
> > GET request response, for example) and would not pass the POST<br>
> > method request on to the backend, which is definitely not what<br>
> > you want in this case.<br>
><br>
</div><div class="im">> If what the OP wanted was to distinguish between cached POST and GET<br>
> request responses then just add $request_method to the cache key.<br>
<br>
</div>That's not what the OP wanted, and that's not what the approach<br>
I described does. The OP wants to be able to invalidate cache entries<br>
on demand without using 3rd party modules. Since, AFAIK, there's no<br>
way to do that without using 3rd party modules, the alternative is to<br>
make sure the cache is as fresh as possible. This can be done by making<br>
sure POST method requests refresh the appropriate cache entries<br>
automatically and/or by having special location blocks for refreshing<br>
specific cache entries on demand.<br>
<div class="HOEnZb"><div class="h5"><br>
Max<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx</a></div></div></blockquote></div><br>