CloudFront 无法与 ELB 502 错误网关通信

Posted

技术标签:

【中文标题】CloudFront 无法与 ELB 502 错误网关通信【英文标题】:CloudFront fails to communicate with ELB 502 bad gateway 【发布时间】:2022-01-07 23:23:40 【问题描述】:

我有一个带有 HTTPS 证书和一些侦听器规则的 Application LoadBalancer,在前面,我部署了一个 CloudFront,它将与负载均衡器通信并提供 Web 中的内容,当 CF 中的源协议是 HTTP 时,两者之间的通信源和 CloudFront 发生,但是当源协议在 CF 中配置为 HTTPS 时,我收到 502 bad gateway 错误。

【问题讨论】:

当您通过 ALB 使用 HTTP 访问您的网站时,它是否正常工作? 是的,当我使用 HTTPS 时发生 502 bad gateway 那么您究竟是如何设置 SSL 证书、https 侦听器、自定义域的?遗憾的是,您的问题缺少任何相关细节。 - 我的公司向我提供了在 ACM 中生成的 SSL 证书,- 我已将其附加到侦听器中的 ALB 并添加了将请求转发到 TargateGroup 的规则。 - ALB 的 DNS 名称是:openn-dev-alb4-1497166043.us-east-1.elb.amazonaws.com - 然后我创建了 CloudFront 并将这个 DNS 指向它的来源,并设置协议 HTTPS 我想要什么是 web 请求 ==> cloudFront(重定向到 ALB 源)==> ALB ==> targate 组 ==> 容器 【参考方案1】:

ALB 的 DNS 名称为:openn-dev-alb4-1497166043.us-east-1.elb.amazonaws.com

您不能通过 HTTPS 使用该域。您的 SSL 证书必须设置为您的自己的域,而不是 AWS 提供的域。原因是您只能为您(或您的公司)完全控制的域拥有有效的公共 SSL 证书,而不是 AWS 默认 ALB 域。

【讨论】:

感谢您的回答,那么我该如何从 CF 与 ALB 通信?在原始部分,我只能给出 AWS 文档建议的 ALB DNS 名称 @Shazam 您可以提供自己的域。如果您没有,则默认 AWS 域只能使用 http。 比如用我自己的域名为ALB DNS创建一个Route53条目,并在CloudFront源中配置自己的域名,这样就可以解决问题了? @Shazam 您必须购买自己的域名。仅在 R53 中的一个条目是不够的。但是,如果您的公司生成 SSL,它可能已经有一些域?你必须检查它。

以上是关于CloudFront 无法与 ELB 502 错误网关通信的主要内容,如果未能解决你的问题,请参考以下文章

CloudFront 到 EC2 源返回 502 错误。我该如何调查?

Cloudfront、ELB 和 SSL

不可预测的 Cloudfront 502 错误

使用 ELB 的 Cloudfront 中的 SSL 问题

CORS 请求未成功 - Cloudfront 和 ELB over HTTPS

使用Cloudfront而不是单个EC2实例的AWS ELB设置有什么意义?