Simple question about proxy cache

Maxim Dounin mdounin at
Fri Mar 22 14:11:40 UTC 2013


On Fri, Mar 22, 2013 at 12:24:21PM +0000, John Moore wrote:

> On 22/03/13 11:43, Maxim Dounin wrote:
> > Hello!
> >
> > 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?).
> >
> >
> Thanks Maxim, that's exactly what I did do, as my follow-up post 
> mentioned. All sorted now and working wonderfully. There is one other 
> thing, though...At the moment, I have two location blocks with identical 
> content, in order to match two different patterns. One matches all URLs 
> starting with certain strings, e.g.
> location ~ ^/(abc|def){
> The other is an exact match for the top level page:
> location = /{
> Ideally I would like to use a single pattern which combined both. I 
> thought to use regex end markers instead of the exact match, but I'm not 
> sure if it's syntactically correct (and this is a very busy server i 
> don't want to mess about with too much experimenting). So would 
> something like this work?
> location ~ (^/abc|^/def/|^/$)

This looks like valid regular expression (try pcretest if unsure), 
but from maintainability point of view I would recommend to use 
multiple normal prefix or exact match locations instead of trying to 
combine them into a single regexp.

Maxim Dounin

More information about the nginx mailing list