gpt4 book ai didi

amazon-web-services - 在 AWS 上使用 Kubernetes 部署 HTTP/2 网络服务器

转载 作者:IT王子 更新时间:2023-10-29 01:53:57 25 4
gpt4 key购买 nike

我有一个 Go 服务器,目前正在 AWS 上运行 Kubernetes。该网站位于 route-53 和管理 SSL 终止的 ELB 下。现在,我想在我的网络服务器中支持 HTTP/2,以便将资源推送到客户端,我看到 HTTP/2 要求网络服务器使用 HTTPS。据此,我有几个问题。

  • HTTP/2 需要 HTTPS - 在我的例子中,HTTPS 逻辑在 ELB 中,它为我管理 SSL 终止。我的应用程序将解密数据作为简单的 HTTP 请求获取。我是否需要删除 ELB 才能在我的网络服务器中启用 HTTP/2?有什么办法可以将 ELB 留在那里并在我的网络服务器中启用 HTTP/2 吗?

  • 在我的本地开发中,我使用 openssl 生成证书。如果我部署网络服务器,我需要从 AWS 获取 CA 证书并将其存储在 Kubernetes 证书管理器中的某个位置,并在初始化时注入(inject)我的网络服务器。推荐的方法是什么?

我觉得我错过了什么,所以我会很感激任何帮助。谢谢

最佳答案

新的 ELB 支持 HTTP/2(https://aws.amazon.com/blogs/aws/new-aws-application-load-balancer/)但不支持推送属性(https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-configuration):“你不能使用 HTTP/2 的服务器推送功能”

如果您想使用 Push,您可以将 ELB 用作四级 TCP LoadBalancer,并在您的网络服务器上启用它。对于 HaProxy,也可以使用此设置 (HTTP/2 behind reverse proxy) 抵消 SSL/TLS,但不确定在 ELB 下是否可以进行类似操作(可能不会)。这是因为虽然 HTTP/2 需要来自所有主要浏览器的 HTTPS,但这并不是协议(protocol)本身的要求,因此负载均衡器 -> 服务器可以在没有 HTTPS 的情况下通过 HTTP/2(称为 h2c)。

但是我会说 HTTP/2 推送非常复杂,无法正确使用 - 请阅读 Google 的 Jake Archibald 关于此的精彩帖子:https://jakearchibald.com/2017/h2-push-tougher-than-i-thought/ .通常发现它在少数情况下会受益,而在大多数情况下不会造成任何变化,甚至会导致其他情况下的性能下降。最终,它在 HTTP/2 功能方面有点令人失望,但我个人认为还没有对其进行足够的探索,因此可能会产生一些积极的影响。

所以如果你不想使用 Push 那么在前端升级到 HTTP/2 还有意义吗?在我看来是的,正如我在这里的回答所详述:HTTP2 with node.js behind nginx proxy .这也表明在从 LB 到网络服务器的后端没有真正需要 HTTP/2,这意味着您可以将其保留为 HTTPS 卸载 loaf 平衡器。

应该注意的是,在某些用例中 HTTP/2 速度较慢:

  1. 在大量数据包丢失的情况下(即非常糟糕的互联网连接)。这里 HTTP/2 使用的单个 TCP 连接和它的 TCP 线头阻塞意味着该连接遭受超过 6 个单独的 HTTP/1 连接。 QUIC 是一个比 HTTP/2 更新的协议(protocol)(如此新,它甚至还没有出现,所以除了在谷歌服务器上之外还没有真正可用)解决了这个问题。
  2. 由于 AWS 的特定实现,适用于大数据包。有趣的帖子在这里:https://medium.com/@ptforsberg/on-the-aws-application-load-balancer-http-2-support-fad4bc67b21a .这只是真正的大下载量最有可能是 API 的问题,对于大多数网站来说应该不是问题(如果是,那么您应该优化您的网站,因为 HTTP/2 无论如何也无济于事!) .可以通过升级 HTTP/2 窗口大小设置轻松修复,但看起来 ELB 不允许您设置此设置。

关于amazon-web-services - 在 AWS 上使用 Kubernetes 部署 HTTP/2 网络服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51583437/

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