我为节点应用程序使用VM比例集。我的应用程序有一个可以通过www.mydomain.com/api/healthcheck
公开访问的操作,并打印一些json。
当我配置我的健康探针使用TCP
协议时,一切正常,我的api也会返回预期的json(和状态200)。
但是,当我现在切换健康探针以使用HTTP
和路径= /api/healthcheck
时,我的网站不再可访问(ERR_CONNECTION_TIMED_OUT
...我想负载均衡器会取出所有实例,因为健康调查告诉他每个实例都是不健康的)
我在我的节点应用程序前使用nginx,但我也尝试(用于测试)配置我的LoadBalancer将端口80路由到backendport 8080(我的节点应用程序在每台机器上运行,所以我可以避免使用nginx代理) 。但我也有同样的行为。
我不明白为什么我的自定义健康检查不起作用。希望你能帮忙。
编辑: 为了测试,我做了以下事情:
tcp
mydoamin.com:3000/hello
可用(打印 hello 并返回200)http
- 协议,端口3000
和位置/hello
。答案 0 :(得分:2)
我无法查看您服务器的代码,因此难以弄清楚。 如果您共享一些代码,那将更容易。
让我们试着分析一下情况:
与实例的连接已超时
尝试从您的机器终端执行以下命令
curl –I private-IP-address-of-the-instance:port/health-check-target-page
现在取决于我们有不同的可能原因...
问题:实例的安全组阻止来自负载均衡器的流量。
在实例上执行数据包捕获以验证问题。使用以下命令:
tcpdump port health-check-port