gpt4 book ai didi

amazon-web-services - 将 AWS ELB HTTP 请求重定向到 HTTPS

转载 作者:太空宇宙 更新时间:2023-11-03 13:11:13 33 4
gpt4 key购买 nike

当我们使用 AWS Application Load Balancer 将传入请求重定向到我们的服务器时,我们创建了一个 SSL 证书并将其设置到负载均衡器。它同时监听 HTTP 80 和 HTTPS 443 端口的流量。在这两种情况下,流量都被重定向到目标组实例的 HTTP 80 端口。

在这些实例中,有配置为监听它们所在实例的 HTTP 80 端口的 nginx 服务器。(这些实例是 Elastic Container Service 实例)

当我更新 nginx.conf 文件以将传入的 HTTP 请求重定向到 HTTPS 协议(protocol)时,我们遇到了重定向循环。即使原始请求是 HTTPS 请求,在负载均衡器后面,EC2 实例也在监听 HTTP 端口。所以无论原始请求是 HTTP 还是 HTTPS,nginx 都会无限发送重定向。

  1. 我看到 Cloudfront 是一个选项,但我对使用它不感兴趣AWS 的另一项服务并付给他们额外的钱来克服这个问题。
  2. 其他解决方案可能是在注册到 ELB 目标组的实例中将 HTTP 监听器更改为 HTTPS。由于我们使用的是 ECS,因此我们必须找到一种方法来在创建 docker 镜像时保护我们的 SSL 证书 key 。我不想将我们的 SSL 证书放入代码存储库中供 jenkins 使用。如果我选择这个解决方案,将会有额外的工作。

您有更简单的想法来解决这个问题吗?

最佳答案

Nginx 将始终通过 HTTP 获取请求,因此显然您不能告诉它重定向所有 HTTP 请求。 ELB 在它发送给你的后端服务器的请求上设置了一个特殊的 HTTP 头,名为 x-forwarded-proto,你需要配置 Nginx 来使用它来检查浏览器和服务器之间的连接是否正常。 ELB 通过 HTTP 或 HTTPS,只有在 HTTP 时才重定向。我会检查 this answer在 ServerFault 上。

关于amazon-web-services - 将 AWS ELB HTTP 请求重定向到 HTTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49754350/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com