【问题标题】:Is Varnish in cloudControl ignoring the new Google Universal Analytics cookies ("_ga")?cloudControl 中的 Varnish 是否忽略了新的 Google Universal Analytics cookie(“_ga”)?
【发布时间】:2013-11-26 18:18:01
【问题描述】:

所以我试图在一个用 Silex 制作的简单测试页面中获得 Varnish “HITS”。 响应具有缓存所需的标头,但它没有被缓存。似乎是因为安装了 Google Analytics。

有没有办法告诉 Varnish(在 cloudControl 中)忽略 Google Analytics cookie?

在此处查看测试站点:http://www.delphinedhaenens.be (MISS)


更新:没有分析代码缓存命中,所以我想也许 cloudControl 没有忽略新的通用分析 cookie(“_ga”)......来自 cloudControl 的人可以确认这个?

使用 NO GA 代码查看同一网站:http://ga-delphius.cloudcontrolled.com (HIT)

同样,Classic GA 代码:http://gaclassic-delphius.cloudcontrolled.com (HIT)

【问题讨论】:

  • 其实 GA 应该不是问题,因为 varnish 从请求中剥离了 GA cookie,所以它应该是可缓存的。
  • 是否也忽略了新的 Google Universal Analytics cookie?我注意到现在只有一个 cookie:“_ga”。并且不再使用之前的那些:“__utma”、“__utmb”、“__utmc”、“__utmz”、“__utmv”...analytics.js vs ga.js
  • 感谢@mkorszun 的回答;你能确认旧 cookie (__utm*) 和新 cookie (_ga) 都被 Varnish 忽略了吗?示例网站非常简单,这是我在问题中添加的两个链接之间的唯一变量。
  • @eillarra,你说得对,我们排除了 __utm* cookie,但还没有 _ga - 我们会修复它并回复你 - 感谢您的提示

标签: google-analytics varnish cloudcontrol


【解决方案1】:

Cloudcontrol routing tier (*.cloudcontrolled.com) 从今天开始也将处理 GA 通用 cookie。请看一些简单的例子:

http://classic-gacachingtest.cloudcontrolled.com/

http://universal-gacachingtest.cloudcontrolled.com/

有趣的是official varnish documentation 建议使用规则,该规则将处理所有类型的 GA cookie,但也会删除其他类型的 cookie,只要它们以“_”开头,这不是很酷。

【讨论】:

    【解决方案2】:

    您可以像这样从vcl_recv 中的客户端请求中删除 GA 设置的 __utm cookie:

    sub vcl_recv {
        if (req.http.Cookie) {
            set req.http.Cookie = regsuball(req.http.Cookie, "(^|; ) *__utm.=[^;]+;? *", "\1");
        }
        if (req.http.Cookie ~ "^[\s;]*$") {
            unset req.http.Cookie;
        }
    

    这将删除所有__utma__utmb__utmc cookie 等。

    【讨论】:

    • 感谢您的回答,但这已经在 cloudControl / Varnish 中进行了配置。他们只需要将新的_ga cookie 添加到配置中,但他们知道(查看@mkorszun 的评论)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 2017-05-23
    • 2014-05-21
    • 2023-02-10
    • 1970-01-01
    相关资源
    最近更新 更多