【发布时间】:2014-09-23 18:12:34
【问题描述】:
我正在使用 varnish 在两台服务器之间进行负载平衡,并且我已经设置了一个导向器和两个后端,它们都成功地做到了这一点。
我的问题是我的两个后端在端口 80 上运行 nginx 列出 my.domain.com。 Nginx 然后将我的请求重新路由到侦听端口3000 的进程。我的进程有一个名为/healthcheck 的路由,我想将其用于清漆后端探测。
这是我的.vcl 文件目前的样子:
backend b0 {
.host = "53.243.15.198";
.probe = {
.url = "/healthcheck";
.timeout = 34 ms;
.interval = 1s;
.window = 10;
.threshold = 8;
}
}
因此,如果我导航到 my.domain.com/healthcheck,我会得到一个 200 OK,但是当 varnish 发起请求时,nginx 不会接收它,因为它不再来自 my.domain.com。
我已经根据this documentation 尝试过,但它不起作用:
backend b0 {
.host = "53.243.15.198";
.probe = {
.request =
"GET /healthcheck HTTP/1.1"
"Host: 53.243.15.198:3000"
"Connection: close";
.timeout = 34 ms;
.interval = 1s;
.window = 10;
.threshold = 8;
}
}
如何在不遇到此问题的情况下检查我的实例的运行状况?或者换句话说,有什么方法可以查询一个不同的端口,然后是后端的主要端口?
【问题讨论】:
标签: node.js nginx varnish varnish-vcl health-monitoring