这个问题可能是由于应用程序或Web服务器在启动期间过慢而造成的。为了解决这个问题,可以使用AWS应用负载均衡器的健康检查设置来确定负载平衡器何时应将流量分配给实例。你可以配置健康检查使负载均衡器等待一段时间以确保应用程序或Web服务器已成功启动并准备接收流量。
以下是一个示例健康检查设置,该设置将等待60秒,然后检查目标实例的状态:
[
{
"Target": "HTTP:80/",
"IntervalSeconds": 30,
"TimeoutSeconds": 5,
"HealthyThresholdCount": 2,
"UnhealthyThresholdCount": 2,
"Matcher": {
"HttpCode": "200-399"
}
},
{
"Target": "HTTP:80/",
"IntervalSeconds": 30,
"TimeoutSeconds": 5,
"HealthyThresholdCount": 2,
"UnhealthyThresholdCount": 2,
"Matcher": {
"HttpCode": "404"
}
},
{
"Target": "HTTP:80/",
"IntervalSeconds": 30,
"TimeoutSeconds": 60,
"HealthyThresholdCount": 2,
"UnhealthyThresholdCount": 2,
"Matcher": {
"HttpCode": "500-599"
}
}
]
在这个示例中,第三个健康检查设置配置了一个较长的超时时间来等待应用程序启动并准备好接收流量。如果目标实例在60秒内无法响应,则认为该实例不健康,并且负载平衡器将停止将流量发送到该实例。