我在我的服务器上设置清漆,并一直在研究VCL(我认为这是非常整洁),我有以下在vcl_recv我正在写,我不明白为什么这将是必要的。
if (req.url ~ “\?(utm_(campaign|medium|source|term)|adParams|client|cx|eid|fbid|feed|ref(id|src)?|v(er|iew))=”) { set req.url = regsub(req.url, “\?.*$”, “”); }
这是剥离谷歌分析跟踪谷歌的GIF请求。
为什么这将有必要从请求进入我的服务器,这不会破坏我的客户的跟踪和分析?
这不是剥离任何cookie,而是regsubing许多uri扩展/参数(如ver = somethingsomething)。 我个人认为,如果你没有故意写这个,那就不要使用它。
关于删除google __utm * cookies会对分析有什么影响的问题。 你链接到一些外部的js脚本,客户端抓取它,谷歌发布一个匹配你的域名的Set-Cookie。 接下来,请求用户对您执行的操作包含此Cookie,从而阻止您使用独立于用户的caching。 因此,你在你身边删除这个cookie。 谷歌分析不受影响,因为你服务的谷歌.js不能读取在服务器端,而是在客户端的头,换句话说,他们没有function为您的网站。 当客户端请求.js文件时,Analytics(分析)获得了他们的信息。 你显然不应该发出有冲突的名字,因为这可能会导致问题。
我基本上使用varnish-cache.org上的例子 :
if (req.http.Cookie) { set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1"); # removes all cookies named __utm? (utma, utmb...) - tracking thing if (req.http.Cookie == "") { remove req.http.Cookie; } }