为什么我的清漆运行状况检查总是返回后端服务器生病了?

时间:2015-08-22 06:27:54

标签: varnish

我在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。

希望有些人帮助我,非常感谢。

1 个答案:

答案 0 :(得分:1)

请注意,请求必须为Varnish返回200 OK才能将此视为健康状态。 可能是您的框架在302网址上返回/吗?

此外,您的.window大小意味着服务器开始生病并且生病,直到您获得.threshold个连续的健康回复,这需要15分钟。

此外,日志显示了什么?

文档: https://www.varnish-cache.org/trac/wiki/BackendPolling