AWS 应用程序负载均衡器 ALB 支持 HTTP/2,人们会认为我们可以切换到它们并立即享受 HTTP/2 的好处。
有没有可能在 ALB 上终止 HTTP/2,这样 Web 服务器就不需要配置为支持 HTTP/2?
答案1
是否有可能终止 AWS 应用程序 ELB 上的 HTTP/2,以便 Web 服务器不需要配置为支持 HTTP/2?
他们已经不需要了。
在应用程序负载均衡器 (ELB/2.0) 上,它就是这样开箱即用的。ALB 使用 HTTP/1.1 与实例通信,如果浏览器支持,则使用 HTTP/2 与浏览器通信,否则使用 HTTP/1.x。
您可以将 HTTP/2 与 HTTPS 侦听器结合使用。使用一个 HTTP/2 连接最多可以并行发送 128 个请求。负载均衡器将这些转换为单独的 HTTP/1.1 请求并使用循环路由算法将它们分发到目标组中的健康目标上。(强调添加)
http://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
答案2
ELB 不支持 HTTP2,ALB 也支持CloudFront。您可以将 ELB 置于 TCP 模式并使用 Web 服务器支持 HTTP2,但这会消除您从 ELB 获得的保护(它会再次保护您免受一系列攻击、DDOS、SYN Flood 等)。
如果您需要 HTTP/2,那么我认为最佳的选项顺序如下:
- 使用 CloudFront(如果想降低成本,请限制位置)
- 使用 ALB
- 在您的 Web 服务器上以 TCP 模式通过 HTTP2 使用 ELB