清漆排序查询字符串参数

时间:2011-11-09 23:52:42

标签: c varnish

我有很多请求避免缓存,因为列出了所有列表排列,即:

http://.....&var=a,b,c
http://.....&var=a,c,b
http://.....&var=b,a,c
http://.....&var=b,c,a
http://.....&var=c,a,b
http://.....&var=c,b,a

有没有一种聪明的方法将这些值散列到相同的值?是查询字符串值的排序版本中最简单的方法吗?

2 个答案:

答案 0 :(得分:10)

我为Varnish编写了一个模块,它按字母顺序重新排序查询参数。

博客文章有一些解释:
http://cyberroadie.wordpress.com/2012/01/05/varnish-reordering-query-string/

代码可以在这里找到: https://github.com/cyberroadie/varnish-urlsort

答案 1 :(得分:2)

“将您的网址重写为规范形式,然后将其哈希”。这样做比较容易,因为vcl没有参数处理操作(除了正则表达式匹配)。您需要一些内联C来为您进行处理,或者在清漆前使用其他代理/负载均衡器(如果有的话)来重写您的请求(如ngingx)。