我正在尝试使用应用程序负载均衡器和 dockerized 应用程序设置 Elastic Beanstalk 环境。创建 EB 环境时,我将其设置在 VPC 中——负载均衡器进入公共子网,而 EC2 实例进入私有子网。 LB 的子网连接到一个 NAT 网关。负载均衡器是作为应用程序负载均衡器创建的,具有端口 80 和 443 的侦听器(使用上传到 ACM 的自签名证书)。
我使用 AWS 提供的默认示例应用程序启动了 EB 环境。当我这样做时,我的负载均衡器目标检查是健康的。但是,当我将我的实际应用程序部署到 EB 环境中时,负载均衡器目标检查开始失败并显示错误代码 301。我不知道该怎么做或如何找出问题所在。如果我重新部署示例应用程序,目标检查仍然是失败的。
编辑:
我尝试通过 EB url 访问我的应用程序,Chrome 因重定向错误太多而出错。这有关系吗?
后端配置的重定向可能导致 301 或 302 响应代码,导致健康检查失败。例如,如果您在后端配置了重定向,则可能会产生 301 或 302 响应代码,从而导致健康检查失败。例如,如果您在后端从 HTTP:80 重定向到 HTTPS:443,则端口 80 上的 HTTP 健康检查将失败,除非您将健康检查更改为 HTTPS 并将健康检查端口更改为 443。
如此链接中所述,您可以将目标组配置为也接受 301 状态代码。
在 EC2 控制台中选择目标组 -> 健康检查 -> 编辑 -> 高级健康检查设置。在“成功代码”字段中也添加 301 以便它读取 200、301