Tomcat 9 配置 HTTP/2

jyat6196 8年前發布 | 35K 次閱讀 Tomcat HTTP 應用服務器

 

介紹

JavaEE 8的最重要的發展之一就是對HTTP/2的支持(現在的官方 RFC 7540 )。現在JCP的 JSR-369已經發展了近2年的時間,規范的負責人Ed Burns和Shing Wai Chan在推進該進程中做了大量的工作。

在寫作的時候,當前三家服務器廠商支持Servlet 4.0: Apache Tomcat 9.0.0.M4Jetty 9WildFly 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 規范 教程感興趣。

來自: http://www.oschina.net/translate/configure-tomcat-9-forhttp2

 本文由用戶 jyat6196 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!