【发布时间】:2021-10-17 08:00:14
【问题描述】:
我一直在努力将我们应用程序的通信协议从 HTTP/1.1 切换到 HTTP/2。
通信流程是这样的:
- 客户端通过 HTTP/2 与 Amazon 应用程序负载均衡器通信
- 应用负载平衡器通过 HTTP/1.1 与反向代理 (HAProxy) 通信
- 然后反向代理通过 HTTP/1.1 与网络服务器通信
我希望所有这些都是 HTTP/2,但由于负载平衡器 (https://forums.aws.amazon.com/thread.jspa?threadID=332847) 的限制,它与反向代理之间的通信可以是 HTTP/2 或 HTTP/1.1,但不能同时使用两者。我需要同时支持这两者,因为有一个通过 HTTP/1.1 打开的 WebSocket 连接。
我可以选择将 HAProxy 和 Web 服务器之间的通信设为 HTTP/2,因为我们的 Web 服务器支持它。
所以流程变成了:
- 客户端 -> ALB (HTTP/2)
- ALB -> HAProxy (HTTP/1.1)
- HAProxy -> 网络服务器 (HTTP/2)
我想了解两件事
- 如果使用 HAProxy 可以做到这一点?
- 如果这是一个好的举措?这会给我带来任何性能改进吗?
提前致谢! 干杯
【问题讨论】:
标签: http reverse-proxy haproxy http2 aws-application-load-balancer