我的想法是在主后端配置Varnish-cache失败(例如HTTP 503),首先尝试另一个后端,如果失败,则提供静态错误消息。
可以这样配置吗?附:除非主要真的失败,否则我不希望varnish与紧急后端一起工作。紧急后端总是有一些过时的数据。
我正在使用Varnish 4,计划很快转向5.X.后端是Java或PHP应用程序。
答案 0 :(得分:0)
当然,你可以这样做,你应该改变你的vcl_backend_response代码,用bereq.retries
和return(retry)
调整它:
sub vcl_backend_response {
if ( beresp.status == 503 && bereq.retries == 0 ) {
set bereq.http.Host = "myNewHost";
return(retry);
}
if ( beresp.status == 503 && bereq.retries > 0 ) {
return (synth(503, "Oh noes!"));
}
}