ALB 不会将流量重定向到我的 EC2 实例 Elastic Beanstalk

ALB does not redirect traffic to my EC2 instances Elastic Beanstalk

问题

您好,我正在使用 HTTP2 设置 Elastic Beanstalk Node js 应用程序,但遇到了一些问题。经过大量研究,我已经能够在我的 EC2 实例上使用 nginx 设置 HTTP2 作为反向代理。我已经分配了一个 public IP 来使用 curl 对其进行测试,一切正常并使用 http2。为此,我在 EC2 实例上创建了一个自签名证书。

在 EC2 实例前面,有一个带有另一个证书(由 AWS 验证)的 ALB,它在实例上从 HTTPS 443 重定向到 HTTP2 443。这部分不起作用,我一直收到 503 错误。

如果我直接访问实例,一切正常,所以我想问题出在 ALB 配置中,但我已经尝试修复了一段时间,但找不到正确的方法。

ALB 配置

在安全组上,我已允许所有 inbound/outbound 流量以查看是否解决了问题,但没有。

有趣的是,目标组显示了两个健康实例。如果服务返回 503 代码,怎么能通过健康检查?!可能是因为实例实际工作但负载均衡器不工作。

这是我从 Elastic Beanstalk 配置中看到的负载均衡器的配置:

附加信息

至少使用 HTTP2 的错误消息:


$ curl -k --verbose https://awseb-AWSEB-A9MYYH15GGU5-713921422.us-east-1.elb.amazonaws.com
 
...
...
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 503
< server: awselb/2.0
< date: Thu, 04 Nov 2021 06:51:44 GMT
< content-type: text/html
< content-length: 162
<
<html>
<head><title>503 Service Temporarily Unavailable</title></head>
<body>
<center><h1>503 Service Temporarily Unavailable</h1></center>
</body>
</html>
* Connection #0 to host awseb-AWSEB-A9MYYH15GGU5-713921422.us-east-1.elb.amazonaws.com left intact
* Closing connection 0

知道我做错了什么吗?也许这是因为我使用的是自签名证书?

无法将 HTTPSawseb-AWSEB-A9MYYH15GGU5-713921422.us-east-1.elb.amazonaws.com 一起使用。只能使用 HTTP 访问此域。

如果您想使用 HTTPS,您必须您自己的域 和您自己的 SSL 证书。一种方法是通过 Route53 ingratiation with Elastic beanstaslk, as explained in Configuring HTTPS for your Elastic Beanstalk environment.