如何在Tomcat中实现HTTP2?以及检测方法
2019.09.04 -
完整的HTTP2支持添加到最新版本的Tomcat9.x.。HTTP/2速度比HTTP/1.1快得多。如果您直接从Tomcat向浏览器提供内容(不通过Web服务器,那么实现HTTP/2可以大大减少应用程序加载时间并整体提高性能。建议在非生产环境中对此进行测试,以确保应用程序按预期运行。

如何在Apache和Nginx中启用HTTP/2?
在实施HTTP2之前,必须使用SSL/TLS证书保护Tomcat。
如何在ApacheTomcat中实现SSL?
1.登录TomcatServer并转到安装文件夹
2.转到conf文件夹
3.使用vi或您喜欢的编辑器修改server.xml文件
4.在SSL连接器中添加以下内容
修改后的总体代码如下:
<Connectorport=”443″protocol=”org.apache.coyote.http11.Http11AprProtocol”
maxThreads=”150″SSLEnabled=”true”>
<CertificatecertificateKeyFile=”conf/key.pem”
certificateFile=”conf/cert.pem”
certificateChainFile=”conf/chain.pem”
type=”RSA”/>
以上是我的实验室配置,因此如果您要复制它,请不要忘记调整配置以适应您的环境要求。尤其是使用自定义和证书路径的端口。
通过转到bin文件夹重新启动Tomcat实例并执行以下脚本
./shutdown.sh
./startup.sh
检查catalina.out日志,您应该看到以下配置为支持h2的确认
24-Feb-201919:43:47.559INFO[main]org.apache.coyote.http11.AbstractHttp11Protocol.configureUpgradeProtocolThe[“https-openssl-apr-443”]connectorhasbeenconfiguredtosupportnegotiationto[h2]viaALPN
这意味着Tomcat已准备好通过HTTP2协议提供请求。
测试Tomcat是否在H2上运行
你怎么知道它是否按预期工作?有多种方法可以测试它。使用Chrome用于测试Intranet应用程序。
1.启动GoogleChrome
2.按F12打开开发人员工具
3.转到网络选项卡
4.访问您的Tomcat应用程序并注意Protocol列
当你看见protocol列上显示h2则说明配置以及成功。

使用日志
查看access.log文件并查看传入的请求。
xx.xxx.xxx.xxx–[24/Feb/2019:20:59:23+0000]”GET/HTTP/2.0″20011468
xx.xxx.xxx.xxx–[24/Feb/2019:20:59:23+0000]”GET/tomcat.cssHTTP/2.0″2005931
xx.xxx.xxx.xxx–[24/Feb/2019:20:59:23+0000]”GET/tomcat.pngHTTP/2.0″2005103
xx.xxx.xxx.xxx–[24/Feb/2019:20:59:23+0000]”GET/bg-button.pngHTTP/2.0″200713
xx.xxx.xxx.xxx–[24/Feb/2019:20:59:23+0000]”GET/bg-upper.pngHTTP/2.0″2003103
xx.xxx.xxx.xxx–[24/Feb/2019:20:59:23+0000]”GET/bg-nav.pngHTTP/2.0″2001401
这个可以很清晰的看见GET的HTTP/2.0请求。
在Tomcat上实现H2非常简单。我建议您在实施后测试您的应用程序,以确保没有副作用。如果您想了解更多关于http/2.0的内容,请阅读相关文章:http2是什么?