Varnish不断缓存我的跟踪软件

时间:2013-11-04 14:07:35

标签: varnish varnish-vcl

我为其中一个网站设置了清漆。我正在使用开源软件Piwik进行统计跟踪。

Piwik可以选择使用代理进行跟踪,这意味着我的源代码中不会显示Piwik的URL。基本上它是一个PHP文件,它位于我的wordpress安装上,它将CURL帖子发送到我的Piwik安装......

现在,我使用以下方式设置了我的清漆: https://github.com/mattiasgeniar/varnish-3.0-configuration-templates

在vcl_fetch中我添加了:

if (req.url ~ "piwik") {
    set beresp.ttl = 120s;
    return (hit_for_pass);
}

在vcl_recv中我添加了:

if (req.url ~ "piwik") {
    return (pass);
}

发生的情况是,我只看到网站上实际拥有的流量的50%......

我担心这是因为我的vcl_fetch设置......

我阅读了pass和hit_for_pass之间的区别,并从我的理解beresp.ttl是一个配置,我指导varnish继续传递120s

另一件事,WP上的W3TotalCache添加了一些缓存标题,如Max-Age&到期我的piwik.php文件。没有Varnish它仍然运行良好并正确跟踪。 Varnish和那些标题之间是否存在某种冲突?

我能做对吗? 为什么你认为50%的跟踪错过了?

感谢。

1 个答案:

答案 0 :(得分:0)

vcl_recv中传递的Varnish配置是正确的。

你可以删除vcl_fetch中的代码,因为recv中的代码,它在那时没有任何区别。

请记住,任何过滤vcl_fetch中响应标头的VCL代码也会针对传递响应运行。我猜你是在过滤piwik发送的Set-Cookie。