【问题标题】:Exclude domain from Varnish stats/hits从 Varnish 统计/点击中排除域
【发布时间】:2015-06-02 07:31:37
【问题描述】:

在我的服务器上,我安装了 Varnish,并且有两个站点,在 apache 上。其中之一基于 Drupal,使用 varnish 集成。

另一个是基于 wordpress 的,不使用 Varnish,在我的 default.vcl 中,该域中的任何资源都被“遗漏”了(因为我无法安装与 Varnish 通信的插件)。

问题是我的 varnishstat 或 varnishhist 的输出是“脏”的:我有很多 wordpress 网站的“错过”条目,相反我希望只为基于 drupal 的网站提供统计信息。

有没有办法做到这一点?

【问题讨论】:

    标签: varnish


    【解决方案1】:

    您可以通过在 config.vcl开头处添加几行 VCL 来轻松完成:

    import std;
    sub vcl_miss {
        std.log("Backend: " + req.backend);
    }
    sub vcl_pass {
        std.log("Backend: " + req.backend);
    }
    sub vcl_hit {
        std.log("Backend: " + req.backend);
    }
    sub vcl_pipe {
        std.log("Backend: " + req.backend);
    }
    

    然后,调整您的 varnishncsa 命令:

    varnishncsa -m VCL_Log:Backend:\ drupal
    

    varnishhist 或任何其他 varnish 实用程序也是如此。

    【讨论】:

      【解决方案2】:

      varnishstat/varnishhist 没有过滤内容的选项,它们从内存日志 varnishd 中读取。 有几种方法可以解决您的问题,一种可能是运行不同的清漆实例,一种用于 wordpress,一种用于 drupal,第三种用作两者之间的调度程序(您可以在同一台机器上使用不同的端口和清漆实例运行它们名字)。

      OTOH,你可以尝试让 wordpress “使用”清漆,我真的不明白为什么你需要为 varnish 配置 wordpress。只需为 wordpress 配置清漆。 :) 例如。这是一个方法:https://www.varnish-software.com/blog/step-step-speed-wordpress-varnish-software

      如果由于某种原因您无法做到这一点,您可以尝试使“脏”请求在日志中看起来更好。调用管道可能是一个解决方案。 (也可以从 vcl_recv 调用管道。管道使客户端和后端连接短路,Varnish 会坐在那里洗牌)

      它应该像这样工作 if ( req.url ~ /wordpress/.*) { return(pipe); }

      rgds, j.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        相关资源
        最近更新 更多