如何让清漆从缓存中回答,而不去后端
How to ask Varnish to answer from cache, without go to backend
通常我通过 Varnish 代理请求文件,它 returns 来自缓存的响应,或者为此访问后端。
有什么方法可以从缓存中请求文件,或者在不强制 Varnish 访问后端的情况下获取 404?
以下测试用例显示了一种可能的方法:
varnishtest "..."
server s1 {
rxreq
txresp -hdr "Cache-Control: s-maxage=60"
} -start
varnish v1 -vcl+backend {
sub vcl_miss {
if (!req.http.X-Warm-Cache) {
return (synth(404));
}
}
} -start
client c1 {
txreq -url "/foo" -hdr "X-Warm-Cache: 1"
rxresp
expect resp.status == 200
txreq -url "/foo"
rxresp
expect resp.status == 200
txreq -url "/bar"
rxresp
expect resp.status == 404
} -run
通常我通过 Varnish 代理请求文件,它 returns 来自缓存的响应,或者为此访问后端。
有什么方法可以从缓存中请求文件,或者在不强制 Varnish 访问后端的情况下获取 404?
以下测试用例显示了一种可能的方法:
varnishtest "..."
server s1 {
rxreq
txresp -hdr "Cache-Control: s-maxage=60"
} -start
varnish v1 -vcl+backend {
sub vcl_miss {
if (!req.http.X-Warm-Cache) {
return (synth(404));
}
}
} -start
client c1 {
txreq -url "/foo" -hdr "X-Warm-Cache: 1"
rxresp
expect resp.status == 200
txreq -url "/foo"
rxresp
expect resp.status == 200
txreq -url "/bar"
rxresp
expect resp.status == 404
} -run