当后端返回 503 时,如何让 Varnish 提供具有过期 TTL 的缓存对象?

当后端返回 503 时,如何让 Varnish 提供具有过期 TTL 的缓存对象?

当我从后端请求对象的新副本时,我尝试让 Varnish 提供具有过期 TTL 的缓存对象并返回 503 错误。

有一个Varnish Grace 功能当后端不良,但当后端通过健康检查时,它不起作用。

答案1

这就是圣人模式的用武之地——您可以使用它将后端的响应标记为不可用,然后重新开始请求,可以使用不同的后端或优雅模式中的陈旧内容。

if (beresp.status == 503) {
  set beresp.saintmode = 10s;
  return(restart);
}

相关内容