Google Analytics 使用一些查询参数来识别广告系列并进行 cookie 控制。这一切都由 javascript 代码处理。请看以下示例:
http://www.example.com/?utm_source=newsletter&utm_medium=email&utm_ter m=October%2B2008&utm_campaign=promotion
这将通过 JavaScript 设置具有正确活动来源的 cookie。此查询参数可以有多个值,有时是随机值。由于它们用作缓存哈希键,因此在某些情况下缓存性能会严重下降。
我认为缓存服务器上有一个不太难的配置,可以忽略所有查询参数或特定查询参数。我说得对吗?
有人知道创建流行的网络缓存解决方案有多难吗?
我对特定的 Web 缓存解决方案不感兴趣。如果能了解一下您使用的那个解决方案就更好了。
答案1
摆弄缓存并不是解决这个问题的正确方法。
处理此类跟踪的 URL 的“正确”方法是向您的规范 URL 发送 301 重定向(当然,在实际进行任何必要的跟踪之后)。
答案2
我不确定我是否完全理解你的意思,但是:
使用 squid,我相信您可以创建一个 url 正则表达式 ACL,然后使用缓存指令告诉它不要缓存这些请求。
答案3
在 varnish 中,在 vcl_recv 函数中
set req.url = regsub(req.url, "\?.*", "");
不过,您确实需要评估是否要这样做。如果它是由 Varnish 而不是后端提供的,您是否会更改任何统计信息收集流程?