测试清漆缓存规则

时间:2018-04-03 07:57:38

标签: varnish varnish-vcl varnish-4

我有这个:

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

但它失败了。

1 个答案:

答案 0 :(得分:0)

问题是你 - 在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