【问题标题】:varnish vcl_recv default behaviour清漆 vcl_recv 默认行为
【发布时间】:2015-04-15 17:33:11
【问题描述】:

你能帮我确认一下 Varnish 中 vcl_recv 的默认行为吗?

default.vcl 文件中的 vcl_recv 定义在应用程序设置中被注释掉。

我们在 vcl 文件中提供了自定义版本的 vcl_recv,而没有指定返回(查找)或查找语句。但是,在尝试访问图像或静态内容时,缓存似乎是正确的。 varnish 是否在内部实现某种逻辑来缓存在 default.vcl 的 vcl_recv 和用户定义的 vcl_recv 中定义的内容之上?

谢谢

【问题讨论】:

    标签: varnish varnish-vcl


    【解决方案1】:

    说明

    当您定义自定义 VCL(在本例中为 vcl_recv)时,Varnish 会自动将默认 VCL 附加到您的 VCL。

    请记住,如果您在 VCL 中执行诸如 return(lookup)/pass/etc 之类的操作,则在执行该行后不会执行 varnish 默认 VCL。

    来自Varnish docs

    它在任何用户指定的 VCL 之后立即执行,并且始终存在。你不能删除它。

    还有:

    考虑在您自己的 VCL 中复制所有逻辑,或者让 Varnish 使用默认 VCL。

    示例

    sub vcl_recv {
          if (req.http.host ~ "dev") {
                 return(pass);
          }
    }
    

    这不会将任何在其主机中具有“dev”的请求保存在缓存中。但它仍然会在缓存中保存其他任何内容。

    额外:

    确定清漆是否正常工作的好工具:Here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 2011-05-29
      • 2013-12-19
      相关资源
      最近更新 更多