我在nginx web服务器之前使用varnish作为缓存服务器。我在varnish配置文件中为后端服务器的定义配置了运行状况检查。但是清漆总是返回我的后端服务器生病,而我停止了我的清漆并直接连接nginx服务器,它可以很好地工作。我尝试使用.url或.request来启用后端服务器检查,它永远不会正常工作。它的琐事如何重新安排它。
我的配置是:
probe backend_healthcheck {
.url = "/";
.window = 5;
.threshold = 3;
.interval = 300s;
}
backend nginx2 {
.host = "10.161.78.249";
.port = "80";
.probe = backend_healthcheck;
}
backend nginx2 {
.host = "10.161.78.249";
.port = "80";
.probe = backend_healthcheck;
}
import directors;
import std;
sub vcl_init {
new webserver = directors.hash();
webserver.add_backend(nginx1,1.0);
webserver.add_backend(nginx2,1.0);
}
sub vcl_recv {
set req.backend_hint = webserver.backend(req.http.cookie);
}
我真的不知道哪个配置有错误?服务器上运行的清漆具有公共IP,后端服务器只有内部IP。
希望有些人帮助我,非常感谢。
答案 0 :(得分:1)
请注意,请求必须为Varnish返回200 OK
才能将此视为健康状态。
可能是您的框架在302
网址上返回/
吗?
此外,您的.window
大小意味着服务器开始生病并且生病,直到您获得.threshold
个连续的健康回复,这需要15分钟。
此外,日志显示了什么?