我的想法是在主后端配置 Varnish-cache 失败(例如 HTTP 503),首先尝试另一个后端,如果失败,提供静态错误消息。
可以这样配置吗?PS我不希望清漆与紧急后端一起使用,除非主服务器真的失败了。紧急后端总是有一些过时的数据。
我正在使用 Varnish 4,计划很快迁移到 5.X。后端是 Java 或 PHP 应用程序。
我的想法是在主后端配置 Varnish-cache 失败(例如 HTTP 503),首先尝试另一个后端,如果失败,提供静态错误消息。
可以这样配置吗?PS我不希望清漆与紧急后端一起使用,除非主服务器真的失败了。紧急后端总是有一些过时的数据。
我正在使用 Varnish 4,计划很快迁移到 5.X。后端是 Java 或 PHP 应用程序。
当然你可以这样做,你应该改变你的 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!"));
}
}