web-dev-qa-db-ja.com

ワニスでGoogleクッキーを取り除く

私はサーバーにワニスをセットアップし、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リクエストを追跡するグーグルアナリティクスを取り除きます。

サーバーに着信するリクエストを取り除くためにこれが必要なのはなぜですか。これにより、クライアントの追跡と分析が破壊されないのでしょうか。

4
Casben79

これはCookieを削除するのではなく、多くのURI拡張機能/パラメーター(ver = somethingsomethingなど)を再サブスクライブします。個人的には、意図的に書いたのでなければ使わないでください。

グーグル__utm *クッキーを削除すると分析にどのような影響があるかについての質問について。外部のjsスクリプトにリンクすると、クライアントがそれをフェッチし、Googleがドメインに一致するSet-Cookieを発行します。ユーザーがYOUに対して行う次のリクエストには、このCookieが含まれているため、ユーザーに依存しないキャッシュを使用できなくなります。したがって、あなたはあなたの側でこのクッキーを削除します。提供するgoogle.jsはサーバー側ではなくクライアント側でヘッダーを読み取ることができないため、Googleアナリティクスは影響を受けません。つまり、サイトに対して機能がありません。クライアントが.jsファイルを要求したときに、Analyticsは情報を取得しました。問題を引き起こす可能性があるため、名前が競合するCookieを発行しないでください。

私は基本的に 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;
    }
}
5
3molo