我有很多请求避免缓存,因为列出了所有列表排列,即:
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
有没有一种聪明的方法将这些值散列到相同的值?是查询字符串值的排序版本中最简单的方法吗?
答案 0 :(得分:10)
我为Varnish编写了一个模块,它按字母顺序重新排序查询参数。
博客文章有一些解释:
http://cyberroadie.wordpress.com/2012/01/05/varnish-reordering-query-string/
答案 1 :(得分:2)
“将您的网址重写为规范形式,然后将其哈希”。这样做比较容易,因为vcl没有参数处理操作(除了正则表达式匹配)。您需要一些内联C来为您进行处理,或者在清漆前使用其他代理/负载均衡器(如果有的话)来重写您的请求(如ngingx)。