检查清漆4中的2个以上网络服务器的后端运行状况
问题描述:
有3个后端的清漆服务器。所有的后端都是apache。一切正常,清漆服务器缓存我需要的一切,并且连接是可以的。我想监视Web服务器的健康状况。如果发生故障,清漆不会将请求发送到发生故障的Web服务器。问题是,当我为所有支持者启用探针时,出现503错误!如果我在一个或两个后端使用它,一切都可以,但是当我为3个后端启用它时,我得到了503错误。这里是为后端和健康检查清漆配置:检查清漆4中的2个以上网络服务器的后端运行状况
vcl 4.0;
import directors;
probe backend_healthcheck {
.url = "/";
.timeout = 34 ms;
.window = 5;
.threshold = 3;
.interval = 1s;
}
backend web1 {
.host = "192.168.1.16";
.port = "8080";
.probe = backend_healthcheck;
}
backend web2 {
.host = "192.168.1.18";
.port = "8080";
.probe = backend_healthcheck;
}
backend web3 {
.host = "192.168.1.20";
.port = "8080";
.probe = backend_healthcheck;
}
sub vcl_init {
new apache = directors.round_robin();
apache.add_backend(web1);
apache.add_backend(web2);
apache.add_backend(web3);
}
答
这很可能是你的健康检查的时间超过34毫秒的时间才能完成,所以尽量将其调整为3秒或更高:
probe backend_healthcheck {
.url = "/";
.timeout = 3s;
.window = 5;
.threshold = 3;
.interval = 1s;
}
监视器如果上述内容没有帮助,则使用varnishlog -g raw -i Backend_health
探针的状态并在此输出。
谢谢。我们用您发送的命令解决了问题。 varnishlog -g raw -i Backend_health:'Backend_health - web3生病了4 - X-R- 0 3 5 0.000803 0.000000 HTTP/1.1 403 Forbidden'我在探针部分添加了'expected_response = 403;'并解决了问题。谢谢。 –