设置beresp.ttl 为0s 是否会替换之前的缓存?

Does setting beresp.ttl to 0s replace previous cache?

我有这个问题,我使用 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 return 缓存错误。

所以,我的问题是 Varnish 是否在设置 beresp.ttl = 0s 时替换为宽限模式存储的对象;

好吧,我刚刚做了一些测试,Varnish 不会替换缓存的对象。