Proxy cache for php site

Maxim Dounin mdounin at mdounin.ru
Tue Nov 8 21:30:52 UTC 2011


Hello!

On Tue, Nov 08, 2011 at 11:56:53AM -0500, lpugoy wrote:

> I'm sorry, but I don't understand the effect of cookies on proxy
> caching. I'm trying to implement the same configuration as the one
> referred to, and I'm also having trouble in that it doesn't seem to be
> caching. I'm also using httperf. For every request the backend does
> return a different cookie. Is this what is preventing the caching from
> happening? 

Yes, nginx won't cache responses with cookies unless you 
specifically ask it to via proxy_ignore_headers directive[1].

Please also note that if you do so, you may want to also instruct 
nginx to hide returned cookies from clients (via proxy_hide_header 
directive[2]), or you'll end up with multiple clients with the 
same cookie.

Example configuration should look like:

    proxy_ignore_headers Set-Cookie;
    proxy_hide_header Set-Cookie;

Depending on the actual headers your backend returns you may also 
need to ignore other headers as well for cache to work, notably 
Expires and Cache-Control.

Alternatively, you may want to instruct your backend to not return 
headers which prevent caching.

[1] http://wiki.nginx.org/HttpProxyModule#proxy_ignore_headers
[2] http://wiki.nginx.org/HttpProxyModule#proxy_hide_header

> In the debug log, I found some entries that refer to the cache. They are
> below:
> 
> 2011/11/08 20:51:45 [debug] 21434#0: *1 http cache key:
> "httpwww.site.comGET/"
> 2011/11/08 20:51:45 [debug] 21434#0: *1 http script var: ""
> 2011/11/08 20:51:45 [debug] 21434#0: *1 add cleanup: 091D56A4
> 2011/11/08 20:51:45 [debug] 21434#0: shmtx lock
> 2011/11/08 20:51:45 [debug] 21434#0: slab alloc: 76 slot: 4
> 2011/11/08 20:51:45 [debug] 21434#0: slab alloc: B6F6B000
> 2011/11/08 20:51:45 [debug] 21434#0: shmtx unlock
> 2011/11/08 20:51:45 [debug] 21434#0: *1 http file cache exists: -5 e:0
> 2011/11/08 20:51:45 [debug] 21434#0: *1 cache file:
> "/var/cache/nginx/5/86/629d786ceca8ff787779a3e4ccdc8865"
> 2011/11/08 20:51:45 [debug] 21434#0: *1 add cleanup: 091D56E8
> 2011/11/08 20:51:45 [debug] 21434#0: *1 http upstream cache: -5
> 
> What do they mean? Thank you.

This debug lines correspond to lookup of the request in cache, and 
they show that no cached response exists.

Maxim Dounin



More information about the nginx mailing list