How to sort parameters in nginx cache key

Hi:

We are experiencing low cache hit ratio in Nginx server. It turned out
that one reason is client may be sending the same requests with
parameters in different orders.

e.g.

foo?p1=a&p2=b&p3=c
foo?p2=b&p1=a&p3=c

And our cache key is set as
proxy_cache_key $uri$is_args$args;

It is not feasible to change all clients to resort their urls. Is
there any way in Nginx to address that?

Thanks,
-Wei

On Tuesday 16 September 2014 14:32:41 Wei Chen wrote:

And our cache key is set as
proxy_cache_key $uri$is_args$args;

It is not feasible to change all clients to resort their urls. Is
there any way in Nginx to address that?

You can sort them manually:

proxy_cache_key $uri$is_args$arg_p1&$arg_p2&$arg_p3;

wbr, Valentin V. Bartenev

Valentin:

I forgot to mention that the number of parameters is very big (> 100)
and
keeps growing. So manual sort is not an option :(.

Posted at Nginx Forum: