【问题标题】:Testing varnish cache rule测试清漆缓存规则
【发布时间】:2018-04-03 07:57:38
【问题描述】:

我有这个:

if (bereq.http.X-Path ~ "[a-z0-9]+\.(js|css)$") {
            set beresp.http.Cache-Control = "max-age=259200";
    }

我需要编写一个 test.vtl 来证明它是有效的。我正在尝试:

client c1 {
    txreq -url "/content/css/main.min.aer234vcvb.css"
    rxresp
} -run

但它失败了。

【问题讨论】:

    标签: varnish varnish-vcl varnish-4


    【解决方案1】:

    问题是你 - 匹配 X-Path 传入 http 标头的条件。 因此,在您的client 中,您没有发送它,并且条件不匹配。

    根据您的配置查看此示例,但使用 X-Path 发送。

    varnishtest "Test Cache-Control on X-Path"
    
    server s1 {
        rxreq
        txresp
    } -start
    
    varnish v1 -vcl+backend { 
    
      sub vcl_backend_response {
            if (bereq.http.X-Path ~ "[a-z0-9]+\.(js|css)$") {
               set beresp.http.Cache-Control = "max-age=259200";
        }
      }
    
    } -start
    
    client c1 {
        txreq -url "/content/css/main.min.aer234vcvb.css" -hdr "X-Path: /content/css/main.min.aer234vcvb.css"
        rxresp
        expect resp.http.Cache-Control == "max-age=259200"
    } -run
    

    您可能想要检查 bereq.url 而不是 bereq.http.X-Path ?!

    【讨论】:

      猜你喜欢
      • 2014-04-07
      • 2012-04-03
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 2013-03-21
      • 2012-09-10
      • 2016-04-19
      • 2012-02-19
      相关资源
      最近更新 更多