是否可以mod_proxy
在 Apache Tomcat 8.5 前面使用 http2 协议?如果可以,最好能看一个示例配置。
编辑
具体来说:在客户端和服务器之间是否可以并且建议使用 http2(Apache httpd
),以及继续和ajp
之间的数据流?Apache httpd
Apache Tomcat
编辑2
这个答案提供了有关该主题的一些详细信息:
答案1
Apache httpd 从 2.4.21 开始添加了 HTTP/2 代理支持,但建议您运行最新版本(撰写本文时为 2.4.27),因为该模块目前仍在发生很大变化。
Tomcat 刚刚在 Tomcat 9 中添加了 HTTP/2 支持:https://readlearncode.com/configure-tomcat-9-for-http2/
因此,从理论上讲,如果您愿意升级到这些版本(并安装 HTTP/2 所需的 OpenSSL 1.0.2 或更高版本),那么这一切都应该很好地结合在一起。
然而,在实践中,它仍然非常新,因此可能会出现错误。坦率地说,HTTP/2 的最大好处在于延迟更高的连接,例如客户端到服务器。服务器到服务器的连接,例如使用 mod_proxy 的 Apache 到 Tomcat,好处会更少。
因此,考虑到这些功能有多新,您可能希望在 Apache Web 服务器(或任何其他支持 HTTP/2 的 Web 服务器)上使用 HTTP/2,并使用 mod_proxy 通过 HTTP/1.1 或 AJP 连接到 Tomcat。这将为您带来 HTTP/2 的大部分性能提升,而无需升级所有内容以获得完整的端到端 HTTP/2 的麻烦和风险。
答案2
截至 2017 年 7 月,Apachemod_proxy
不再支持 HTTP/2.0 协议。mod_proxy_http2
1模块但它仍处于实验阶段。
就像第二次编辑中提供的 StackOverflow 答案中详细说明的那样,您可以使用它mod_http2
在 Apache 端启用 HTTP/2.0 支持,并使用 HTTP/1.1 或 AJP 与 Tomcat 服务器通信。但您会失去 HTTP/2.0 最大的功能之一:多路复用。