Simple question about proxy cache

Maxim Dounin mdounin at
Fri Mar 22 11:43:25 UTC 2013


On Fri, Mar 22, 2013 at 11:18:50AM +0000, John Moore wrote:


> Actually, there is one final tweak I'd like. There are a number of 
> different locations which I'd like to use the proxy cache for. I cannot 
> repeat for each location the block where the cache log is defined (it 
> rightly complains about duplication). So I have to define it at a server 
> level instead. If I do this, though, then EVERY request for that server 
> ends up being logged, even if there is no cache in force for the request 
> location (i.e., the location has either 'proxy_cache off' or no 
> proxy_cache definition. Is there a way I can configure things so that 
> the only requests which are logged are ones from locations where a proxy 
> cache is in force?

You _can_ repeat acces_log in every location.  If nginx complains - 
you did something wrong (tried to repeat log_format?).

Something like this will do logging into normal.log for all 
requests, and additionally to cache.log in a locations where it's 

    log_format cache "...";

    access_log /path/to/normal.log combined;

    server {

        location / {
            proxy_pass http://uncached;

        location /foo {
            proxy_pass http://foo;
            proxy_cache one;
            access_log /path/to/normal.log combined;
            access_log /path/to/cache.log cache;

        location /bar {
            proxy_pass http://bar;
            proxy_cache one;
            access_log /path/to/normal.log combined;
            access_log /path/to/cache.log cache;

Maxim Dounin

More information about the nginx mailing list