对于我的节点应用程序,我使用VM比例集。我的应用程序有一个可以通过www.mydomain.com/api/healthcheck公开访问的动作,并且只打印一些json。当我将我的健康探测器配置为使用TCP协议时,一切正常工作,我的api也返回预期的json (和状态200)。然而,当我现在切换我的健康探测器使用HTTP和path=/api/healthcheck时,我的网站就无法访问了(ERR_CONNECTION_TIMED_OUT.我猜负载平衡器会取出所有实例,因为健康探测器告诉他每个实例都是不健康的)
我在我的节点应用程序前面使用nginx,但我也尝试(用于测试)将我的LoadBalancer配置为将端口80路由到backendport 8080 (在这里,我的节点应用程序在每台机器上运行,这样就可以避免nginx代理)。但我也有同样的行为。
我不知道为什么我的自定义健康检查不起作用。希望你能帮上忙。
编辑:为了测试,我做了以下工作:
tcpmydoamin.com:3000/hello可用(打印hello并返回200)http-protocol、端口3000和location /hello。发布于 2017-08-14 18:49:54
我看不见你服务器的代码,所以很难弄清楚。如果您共享一些代码,这将更容易。
因此,让我们试着分析一下情况:
初始检查
到实例的连接已超时。
尝试从机器终端执行以下命令
curl –I private-IP-address-of-the-instance:port/health-check-target-page现在取决于不同的原因.
初步检查结果:非200响应
初始检查结果:能够直接连接到实例
其他:实例没有从负载均衡器接收流量。
问题:实例的安全组正在阻塞负载均衡器的通信量.
在实例上执行数据包捕获以验证该问题。使用以下命令:
tcpdump port health-check-porthttps://stackoverflow.com/questions/45570112
复制相似问题