AWS 负载均衡器健康检查:健康检查失败,代码如下:[301]

问题描述 投票:0回答:2

我正在尝试使用应用程序负载均衡器和 dockerized 应用程序设置 Elastic Beanstalk 环境。创建 EB 环境时,我将其设置在 VPC 中——负载均衡器进入公共子网,而 EC2 实例进入私有子网。 LB 的子网连接到一个 NAT 网关。负载均衡器是作为应用程序负载均衡器创建的,具有端口 80 和 443 的侦听器(使用上传到 ACM 的自签名证书)。

我使用 AWS 提供的默认示例应用程序启动了 EB 环境。当我这样做时,我的负载均衡器目标检查是健康的。但是,当我将我的实际应用程序部署到 EB 环境中时,负载均衡器目标检查开始失败并显示错误代码 301。我不知道该怎么做或如何找出问题所在。如果我重新部署示例应用程序,目标检查仍然是失败的。

编辑:

我尝试通过 EB url 访问我的应用程序,Chrome 因重定向错误太多而出错。这有关系吗?

amazon-web-services amazon-elastic-beanstalk amazon-elb
2个回答
3
投票

后端配置的重定向可能导致 301 或 302 响应代码,导致健康检查失败。例如,如果您在后端配置了重定向,则可能会产生 301 或 302 响应代码,从而导致健康检查失败。例如,如果您在后端从 HTTP:80 重定向到 HTTPS:443,则端口 80 上的 HTTP 健康检查将失败,除非您将健康检查更改为 HTTPS 并将健康检查端口更改为 443。


0
投票

此链接中所述,您可以将目标组配置为也接受 301 状态代码。

在 EC2 控制台中选择目标组 -> 健康检查 -> 编辑 -> 高级健康检查设置。在“成功代码”字段中也添加 301 以便它读取 200、301

© www.soinside.com 2019 - 2024. All rights reserved.