对于您要运行的特定配置,恐怕无法使其与 SPDY 或 HTTP/2 一起使用。
配置为反向代理的 Apache 与 Jetty 对话 HTTP/1.1,因此根本无法让 SPDY 或 HTTP/2 进入图片(考虑到您不能让 Apache 对话 SPDY)。
但是,有许多替代解决方案。让我们只关注 HTTP/2,因为 SPDY 现在正被淘汰,取而代之的是 HTTP/2。
第一个也是最简单的解决方案就是完全删除 Apache。您只需将 Jetty 公开为您的服务器,它就可以毫无问题地向浏览器发送 HTTP/2 和 HTTP/1.1。Jetty 将处理 TLS,然后是 HTTP/2 或 HTTP/1.1。
第二种解决方案是将HAProxy放在前面,然后转发给Jetty。HAProxy 将处理 TLS 并将明文 HTTP/2 或 HTTP/1.1 转发到 Jetty。
这两种解决方案的优势在于您将受益于 Jetty 的 HTTP/2 支持以及它的HTTP/2 Push 功能。不仅如此,Jetty 还为您提供了广泛的 Apache 功能,例如重写、代理、PHP/FastCGI 支持等。对于大多数配置,您不需要 Apache,因为 Jetty 可以做到。
第一个解决方案的优点是您只需配置一个服务器(Jetty),但您可能会为 TLS 支付一点费用,因为 Jetty 使用的 JDK 实现并不是最有效的。
第二种解决方案的优点是 TLS 将由 HAProxy 更有效地完成,并且您可以更轻松地在端口 80 上运行它。但是,您必须配置两台服务器(HAProxy 和 Jetty),而不仅仅是一台。
查看Jetty HTTP/2 文档和Webtide 博客,我们会在其中定期添加有关 HTTP/2、配置和示例的条目。