当我从后端收到错误500时,我使用以下代码来增加清漆中的宽限期:
# If backend returns 500 error then boost the cache grace period...
if (beresp.status == 500) {
set beresp.grace = 1m;
return (retry);
}
但我只想提高宽限期,当我有另一个缓存时,如果我没有缓存,我只想缓存错误。
缓存的后端响应配置“vcl_backend_response”:
# Cache 1 day
if(bereq.url ~ "^/"){
set beresp.http.X-cachePath = beresp.http.X-cachePath + "1d::";
unset beresp.http.set-cookie;
unset beresp.http.Cache-Control;
set beresp.ttl = 1d;
set beresp.grace = 1h;
return (deliver);
}
这可以用清漆4吗?
谢谢大家!
答案 0 :(得分:0)
我认为你要找的是Saint Mode。 Here就是一个例子。
Saint Mode的功能与Grace模式类似,但在不同情况下,Grace模式在后端生病或需要太长时间响应时起作用,当你不喜欢时,Saint Mode会起作用后端响应。
在这种情况下,500错误是您不喜欢的响应。
在版本4中将圣模从Varnish核心中移除是一个很小的问题。尽管不像在Varnish 3中那么简单,here是Varnish 4中圣模的VMOD