360SDN.COM

首页/Tomcat/列表

OSC 协作翻译 | Tomcat 9 配置 HTTP/2

来源:开源中国  2017-09-11 11:40:57    评论:0点击:

介绍


JavaEE 8的最重要的发展之一就是对HTTP/2的支持 (现官方 RFC 7540) 。现在JCP的 JSR-369 已经发展了近2年的时间,其规范的负责人Ed Burns和Shing Wai Chan在推进该进程中做了大量的工作。

在写作的时候,当前三家服务器厂商支持Servlet 4.0时: Apache Tomcat 9.0.0.M4,Jetty 9 和 WildFly 10.0.0.Final。我们可以看一下如何配置 Tomcat 9 以支持它。

HTTP2的目标


HTTP/2的目标是增加Web浏览体验的性能感受。

为什么需要HTTP2


一个Web页面需要加载许多资源。在HTTP 1.0中,对所有资源的请求都是同时发出的,并且服务端会响应所有的请求。如果其中的一个资源花费了额外的时间,因为头线阻塞,那么所有其他的资源都会被阻塞。

从HTTP1.1升级


大多数Web站点使用HTTP1.1。要升级至 HTTP/2 可以使用头更新 (101 协议开关) 来向服务端发送 h2c,该服务器会升级至 h2c (c 意味着明确的文本),注意,目前在Firefox和Chrome中并没有h2c。

如何才是安全的呢?可以使用ALPN,它是一个TLS的扩展,在握手时可以发送一个扩展然后服务器就会检测到通讯协议是h2。

载Tomcat 9


为你的系统下载相应的Tomcat 9 二进制发行版,然后通过解压压缩包来进行安装。确保已经安装了Java 8 SE。

用OpenSSL生成证书


正如上面已经讨论过的,配置TLS来使用 HTTP/2是非常必要的,因为Firefox和Chrome对明确文本支持的缺乏。对于TLS,需要一个证书,如果还没有准备好一个证书,可以用 OpenSSL 生成。

配置server.xml


Tomcat 9 的一个改变是对于TLS虚拟主机和多证书的支持是通过一个单一连接器实现的。.

Open the conf/server.xml file and make the following configuration changes.

<Connector port="8443"

protocol="org.apache.coyote.http11.Http11AprProtocol"

maxThreads="150" SSLEnabled="true">

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

<SSLHostConfig honorCipherOrder="false">

<Certificate certificateKeyFile="conf/ca.key"

certificateFile="conf/ca.crt"/>

</SSLHostConfig>

</Connector>

重启Tomcat。

结论


要测试这个配置可以访问 https://localhost:8443。如果看到了Tomcat主页,那么就为Tomcat 9成功地配置了TLS。这时就可以使用 Servlet 4.0进行开发了。

关注这个空间可以了解更多有关 Servlet 4.0的教程。

如果你对HTTP/2规范感兴趣, 你也可能对我的 HTTP/2 规范教程感兴趣。


本文来自OSC协作翻译,了解更多请点击阅读原文。

扫一扫,关注 开源中国 微信号

每天为你送上精选资讯早点

还有 OSChina 乱弹哦

阅读原文

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权