Use /g (global) regex modifier in map
Maxim Dounin
mdounin at mdounin.ru
Fri Aug 8 16:14:52 UTC 2014
Hello!
On Fri, Aug 08, 2014 at 05:06:55PM +0200, Gabriel Arrais wrote:
> Hi Maxim, first thank you very much for your answer!
>
>
> Maxim Dounin wrote in post #1154662:
> > Hello!
> > ...
> > Note well that even if you'll be able to filter arguments, there
> > is an additional problem of order of the arguments.
> >
>
> The same problem would occur using the variable $args right?
Sure.
> > Simpliest way to normalize arguments is to use all of them in
> > proxy_cache_key, like this:
> >
> > proxy_cache_key $proxy_host$uri$is_args$arg_foo:$arg_bar;
> >
>
> I've tried this, but it seems that nginx only catches the first
> occurence of the parameter, resulting in 2 different requests cached
> with the same key.
>
> Example:
> ?fq=xxxxxx&sm=0&PageNumber=1 and
> ?fq=xxxxxx&sm=0&PageNumber=1&fq=yyyyyyyyyy
>
> Are returning the same content. Is there a way to avoid this behavior?
There is no easy one, as nginx itself doesn't know how to work
with multiple arguments with the same name. You may try to build
a regex to extract second argument with the given name (3rd, 4th,
and so on) and include these into the cache key as well.
--
Maxim Dounin
http://nginx.org/
More information about the nginx
mailing list