gpt4 book ai didi

tomcat - 什么会导致 EC2 实例无法添加到 Elastic Load Balancer/健康检查失败?

转载 作者:行者123 更新时间:2023-11-28 22:27:20 25 4
gpt4 key购买 nike

我会尽我所能提供 MCVE,而不会让您陷入细节之中。

我最近启动了两个 EC2 实例作为 Tomcat,它们是作为现有实例的克隆启动的。我还创建了一个 Elastic Load Balancer (ELB) 来位于这些 Tomcat 实例的前面,以管理对我的 Web 应用程序的请求。据我所知,这两个 EC2 实例本质上是相同的。他们都共享一个安全组,正在监听端口 8080 等。

我去往ELB中添加实例的时候,一个成功了,一个不成功。指示的错误是:

Instance has failed at least the UnhealthyThreshold number of HealthChecks consecutively. 

在 EC2 实例列表中,两个 Tomcat 的个体运行状况都报告良好,我可以通过 ssh 访问它们。我已经确认 Tomcat 服务正在两者上运行,并且 netstat -alnt 显示两者都在监听 8080 端口。重新启动问题实例并将其重新添加到 ELB 没有帮助。

以下是适用于这两个实例的健康检查设置:

Ping Target HTTP:8080/
Timeout 5 seconds
Interval 30 seconds
Unhealthy threshold 5
Healthy threshold 10

增加超时似乎没有帮助。我确信一定有一些细微的设置/差异阻止了 ELB 发现问题实例,但我用谷歌搜索了一下,但没有找到针对我的具体案例的任何建议。

如果任何其他信息对诊断问题有用,请告诉我。

最佳答案

在 ELB 中将 "Ping Target HTTP:8080/" 更改为 "Ping Target TCP:8080/" 或简而言之使用 TCP 协议(protocol)而不是 HTTP 它将起作用.

如果您使用 HTTP 方法,请始终确保您提到的是“/test.html”之类的测试文件,而不仅仅是“/”。

在此处为我的问题添加更多信息。

健康检查的工作原理是在 ping 端口和 ping 路径 [1] 上向实例发出 HTTP 或 HTTPS GET 请求。如果负载均衡器在响应超时时间内收到除“200 OK”之外的任何响应,则认为该实例不健康。对于仅包含路径 '/' 的请求,它会留给您的网络服务器来处理所谓的“尾部斜杠”重定向。例如,Apache 会将尾部斜杠重定向到由其 DirectoryIndex 指令指定的资源 [2]。

文件:[1] http://docs.aws.amazon.com/ElasticLoadBalancing/latest/DeveloperGuide/elb-healthchecks.html[2] https://httpd.apache.org/docs/2.4/mod/mod_dir.html#directoryindex

关于tomcat - 什么会导致 EC2 实例无法添加到 Elastic Load Balancer/健康检查失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37749487/

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