好吧这可能看起来像一个愚蠢的问题,但我不得不说我有点难过。我无法弄清楚为什么我的ELB(经典) - > AWS中的EC2运行状况检查失败。
所以我配置的方式,我的ELB健康检查将尝试ping TCP:8080
上的实例。
我的ELB上有3个端口监听器,根据我的理解应该无关紧要,因为它处理来自外部的流量,但我会列出以防万一我忽略了一些事情:
1.)HTTP:80 --> HTTP:8080
2.)HTTPS:443 --> HTTP:8080
3.)TCP:2222 --> TCP:2222
我还尝试将健康检查配置为ping TCP:2222
,以防万一和同样的交易..
此外,我的EC2安全组可以从我的ELB安全组中启用TCP:8080
和TCP:2222
。
它失败的原因是因为当EC2实例允许流量时,它仍然需要在该端口上运行某些东西来为流量提供服务吗?
所有EC2目前都是一个简单的AWS提供的Linux AMI。
原谅我,我对网络空间有点新鲜。
答案 0 :(得分:4)
是的,需要在服务器上运行。如果服务器上没有正在运行的进程,侦听并响应端口8080
上的请求,则运行状况检查将失败。如果服务器上运行的软件崩溃,您会希望运行状况检查失败吗?如果实例没有响应请求,则该实例不是“健康的”。
此外,分配给EC2实例的安全组需要配置为允许源自ELB的那些端口(8080
和2222
)上的传入流量。