gpt4 book ai didi

node.js - 在与主后端端口不同的端口上运行 Varnish 探针

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:18 26 4
gpt4 key购买 nike

我正在使用 Varnish 在两台服务器之间进行负载平衡,并且我已经设置了一个 Controller 和两个后端,它们正在成功地完成此操作。

我的问题是我的两个后端正在 my.domain.com 的端口 80 列表上运行 nginx。然后,Nginx 将我的请求重新路由到监听端口 3000 的进程。我的进程有一个名为 /healthcheck 的路由,我想将其用于 Varnish 后端探针。

这就是我的 .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;
}
}
<小时/>

如何在不遇到此问题的情况下检查我的实例的运行状况?或者换句话说,是否有某种方法可以查询与后端主要端口不同的端口?

最佳答案

您仍然需要向 nginx 发送健康检查。但是,您的探测器必须具有 HTTP 主机 my.domain.com :

backend b0 {
.host = "53.243.15.198";
.host_header = "my.domain.com";
.probe = {
.url = "/healthcheck";
.timeout = 34 ms;
.interval = 1s;
.window = 10;
.threshold = 8;
}
}

关于node.js - 在与主后端端口不同的端口上运行 Varnish 探针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25065009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com