【问题标题】: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 ?!