内联C& vcl缓存

时间:2012-02-24 06:19:38

标签: c caching varnish varnish-vcl

我有网址

...../suggest?callback=jsonp9999999999999&term=something

我想从网址中删除 callback = jsonp999999999999& ,缓存其余(..... / suggest?term = something)并传递完整的URL (..... /建议?callback = jsonp9999999999998& term = something)再次到后端。

当第二个请求格式为(..... / suggest?callback = jsonp000000000000& term = something)时, varnish必须删除 callback = jsonp000000000000& 检查缓存是否有命中,并从缓存中返回结果。

这是否可以使用内联C和VCL?

2 个答案:

答案 0 :(得分:1)

如果查询字符串始终以"callback=jsonp"开头,则搜索其开头(strstr对此有利)。然后找到下一个'&'strchr是此处使用的函数)。然后将第一部分复制到新缓冲区,并将最后一部分连接到新缓冲区。

答案 1 :(得分:1)

有可能,您可以像操作cookie或其他标题一样更改req.url参数。 Here's an example如何在将Google Analytics参数发送到您的后端之前将其删除,同样的逻辑也适用于此。