清漆紧急后端或服务静态错误

时间:2017-02-14 22:23:19

标签: caching load-balancing varnish varnish-vcl varnish-4

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

可以这样配置吗?附:除非主要真的失败,否则我不希望varnish与紧急后端一起工作。紧急后端总是有一些过时的数据。

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

1 个答案:

答案 0 :(得分: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!"));
        }

}