0

我的想法是在主后端配置 Varnish-cache 失败(例如 HTTP 503),首先尝试另一个后端,如果失败,提供静态错误消息。

可以这样配置吗?PS我不希望清漆与紧急后端一起使用,除非主服务器真的失败了。紧急后端总是有一些过时的数据。

我正在使用 Varnish 4,计划很快迁移到 5.X。后端是 Java 或 PHP 应用程序。

4

1 回答 1

0

当然你可以这样做,你应该改变你的 vcl_backend_response 代码调整它bereq.retriesreturn(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!"));
        }

}
于 2017-02-15T16:45:39.593 回答