我有这个问题,我使用 Varnish 3.0,我想避免缓存错误。我知道这段代码应该这样做:
if (beresp.status >= 500) {
set beresp.saintmode = 2m;
if (req.request != "POST") {
set beresp.ttl = 0s;
return(restart);
} else {
set beresp.ttl = 1s;
error 500 "Failed";
}
}
但是,我担心的是Varnish用给定的错误替换旧缓存。我的意思是,如果我的后端关闭,我不希望 Varnish 返回缓存错误(我已经设置了宽限模式)。
所以,我的问题是,在设置 beresp.ttl = 0s 时,清漆是否会替换为宽限模式存储的对象;
好吧,我刚刚做了一些测试,Varnish 不会替换缓存的对象。