proxy cache

Igor Sysoev is at
Tue May 19 17:13:22 MSD 2009

On Tue, May 19, 2009 at 02:57:23PM +0200, Micha?? Jaszczyk wrote:

> Hey,
> I need a little bit of help in understanding how proxy cache works in
> Nginx. I've already managed to set up the cache and it works. Now I'm
> tweaking it and I'm having some trouble with the proxy_cache_valid
> directive. How does it work exactly? In some recent changelog I found
> that the cache now respects "Expires" and "Cache-Control" headers. How
> does this relate to proxy_cache_valid? Imagine the following
> scenarios:
> 1. proxy_cache_valid is set to 1h and upstream's response is valid for 2h.

nginx will cache for 2h.

> 2. proxy_cache_valid is set to 2h and upstream's response is valid for 1h.

nginx will cache for 1h.

> 3. proxy_cache_valid is set to 1h and upstream's response doesn't
> contain any caching hints.

nginx will cache for 1h.

> For how long will Nginx cache the response in each of the above scenarios?
> Does Nginx respect "Pragma: no-cache" header?

No. I belive no one browser respects this header, since it's client side
header only.

> Which "Cache-Control" header directives (see
> does
> Nginx respect?

"no-cache", "max-age=0", "max-age=NNN".
Probably "no-store" should be added.

> What happens if the client sends "If-Modified-Since" header?

This header does not send to backend, however, nginx may responses 304.

> How does Nginx deal with "Vary" header?

Not at all.

> That's a lot of questions, sorry for that :). Answer to any of them
> will be appreciated :). If someone has the time to answer, I'll try to
> spend some time and update the Wiki.
> Regards,
> -- 
> Micha?? Jaszczyk

Igor Sysoev

More information about the nginx mailing list