Simple question about proxy cache
Maxim Dounin
mdounin at mdounin.ru
Sun Mar 17 23:08:27 UTC 2013
Hello!
On Sun, Mar 17, 2013 at 08:08:39PM +0000, John Moore wrote:
> I've used nginx as a reverse proxy server for a long while but I've not
> tried out the proxy cache until today, and I have to say I'm a little
> bit confused by what I'm seeing in the cache log, and I'm wondering
> whether I've set things up correctly. My requirements are actually
> pretty simple. I have a couple of locations which I want to proxy to
> another server and cache the results. Thus:
>
> location /media/house_images/{
> proxy_pass http://backend;
> proxy_cache one;
> }
>
> location /media/boat_images/{
> proxy_pass http://backend;
> proxy_cache one;
> }
>
>
> Apart from this, I don't want any cacheing of responses to be done. I am
> assuming that the default is NOT to cache unless a cache zone is
> specified (at the server or location level, presumably), so either
> omitting a proxy_cache or specifying 'proxy_cache off' should be
> sufficient to achieve this, should it not?
Yes, without proxy_cache (or with "proxy_cache off") configured in
a location cache won't be used.
> Two things are puzzling me, though. Firstly, in the cache log, I'm
> seeing the URLs of all kinds of requests which SHOULD NOT be cached, and
> I'm wondering whether all requests are logged whether they're cached or
> not - I certainly hope this is the case and it's not actually cacheing
> these responses. I would definitely prefer to only see entries in the
> log for requests matching locations for which a cache has been
> specified. I presume this is possible?
You can configure logs for a specific location, see
http://nginx.org/r/access_log.
> Secondly, the very requests which I would expect to be cached are all
> showing up in the log with the word 'MISS' in the $upstream_cache_status
> column.
This usually happens if your backend doesn't specify allowed cache
time (in this case, proxy_cache_valid should be used to set one,
see http://nginx.org/r/proxy_cache_valid) or if backend responses
doesn't allow cache to be used (either directly with
Cache-Control/Expires headers, or indirectly with Set-Cookie
header, see http://nginx.org/r/proxy_ignore_headers).
--
Maxim Dounin
http://nginx.org/en/donation.html
More information about the nginx
mailing list