19

经过一番研究,我很惊讶在 Tomcat 中没有找到任何关于 HTTP/2 支持的资源。8.0 的变更日志表明对 SPDY 的实验性支持,wiki 将 HTTP/2 称为受支持的规范(http://wiki.apache.org/tomcat/Specifications),但我没有找到任何关于它的教程。

你知道是否已经可以在 Tomcat 上启用 HTTP/2 吗?如果答案是肯定的,我该怎么做?

4

4 回答 4

21

Tomcat 还不支持 HTTP/2。

Tomcat 9 及更高版本计划支持 HTTP/2。它可能会被向后移植到早期版本。

实验性的 SPDY 支持就是:实验性的。它在浏览器支持特定版本的 SPDY 但目前没有浏览器支持 Tomcat 实现的 SDPY 版本时工作。

SPDY 的实验性支持已从 Tomcat 8.0.22 中删除,在changelog中注明。

于 2015-04-01T13:06:00.207 回答
11

Tomcat 8.5 已发布,具有从 Tomcat 9 向后移植的功能,并包括 HTTP/2 支持。

我个人还没有机会在 Tomcat 8.5 上设置 HTTP/2,所以我无法评论“如何做”。

于 2016-06-17T20:30:47.717 回答
8

HTTP/2 支持现在在Tomcat中可用。Tomcat-8.5支持 HTTP/2。要在tomcat-8.5或更高版本中启用 HTTP/2,您需要升级tomcat conf 文件夹中文件server.xml中的连接器协议。

<Connector ... >
  <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
</Connector>

您还需要设置 SSL 证书的配置以使用此连接器。

于 2016-04-11T05:22:00.893 回答
1

为 tomcat8.5.x 启用 http2,

@Bean
       public EmbeddedServletContainerCustomizer tomcatCustomizer() {
        return container -> {
            if (container instanceof TomcatEmbeddedServletContainerFactory) {
                ((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers((connector) -> {
                    connector.addUpgradeProtocol(new Http2Protocol());
                });
            }
        };
    }
于 2017-04-18T18:37:05.347 回答