Nginx http proxy caching

Igor Sysoev igor at sysoev.ru
Mon May 10 23:15:21 MSD 2010


On Mon, May 10, 2010 at 03:02:09PM -0400, Jim Ursetto wrote:

> Vinay Y S Wrote:
> -------------------------------------------------------
> > Hi,
> > Is there developer documentation on how http
> > caching works in nginx? I'm
> > seeing weird caching behavior where it's caching
> > responses with Cache-Control: private headers.
> 
> nginx completely ignores the `private` keyword and
> will cache your document regardless.
> 
> > As I've asked in another thread, I'm also trying
> > to understand how I can
> > enable/disable caching per request based on a
> > cookie or a header set by
> > upstream server.
> 
> You can send `Cache-control: max-age=0` or 
> `Cache-control: no-cache` to disable nginx proxy cache.
> 
> Note that because `private` is ignored, you cannot tell
> nginx to not use the proxy cache while still allowing
> the browser to cache (for example, 
> `Cache-control: max-age=3600, private`).  You can only
> disable the proxy cache in the configuration file based
> on the current Location.  I don't really understand this
> behavior; I think private should be honored.

You are right, "private" should be ignored.
However, you may say nginx "X-Accel-Expires: 0" to not cache such
responses. You may say different cache times for nginx and
browsers/transit proxies:

X-Accel-Expires: 500
Cache-Control: max-age=100


-- 
Igor Sysoev
http://sysoev.ru/en/



More information about the nginx mailing list