日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

配置Tomcat使用HTTP/2

發(fā)布時間:2023/11/29 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 配置Tomcat使用HTTP/2 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)自:?https://zhuanlan.zhihu.com/p/21349186?

前情提要:

Tomcat高效響應(yīng)的秘密(一) Sendfile與Gzip

Tomcat高效響應(yīng)的秘密(二) keep alive


前面高效響應(yīng)的兩篇,我們分析了Sendfile的特性以及HTTP1.1的keep-alive特性,基于這些功能,Tomcat可以更快速的響應(yīng)請求。

而在keep-alive的特性分析時,我們發(fā)現(xiàn)是服務(wù)端與客戶端在keep-alive未超時的時候,一直保持TCP的連接,這樣在新的請求到達(dá)時就避免了重新握手和斷開連接。


為了進(jìn)一步提升性能,Google率先發(fā)起并推出了Spdy,許多主流的瀏覽器都允以支持。最終IETF以此為參照,提出了HTTP/2的標(biāo)準(zhǔn)。


在減少延遲,加速頁面加載方面,維基百科上有如下描述:


  • Data compression of HTTP headers

  • HTTP/2 Server Push.

  • Pipelining of requests

  • Fixing the head-of-line blocking problem in HTTP 1.x

  • Multiplexing multiple requests over a single TCP connection



我們來試用一樣HTTP/2,直觀感受一下它的特點。


需要的材料有:

  • 版本要大于 Tomcat 9.0.0 M4

  • OpenSSL

  • 使用OpenSSL生成的證書文件



觀察新版本的Tomcat配置文件server.xml,其中包含如下內(nèi)容:


<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443?with HTTP/2

This connector uses the APR/native implementation. When using the

APR/native implementation or the OpenSSL engine with NIO or NIO2 then

the OpenSSL configuration attributes must be used.

-->

<!--

<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"

maxThreads="150" SSLEnabled="true" >

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

<SSLHostConfig>

<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"

certificateFile="conf/localhost-rsa-cert.pem"

certificateChainFile="conf/localhost-rsa-chain.pem"

type="RSA" />

</SSLHostConfig>

</Connector>

-->


由于HTTP/2只支持在HTTPS中使用,因此證書是必須的,制做證書的原理,各位請自行Google。


在Tomcat中,要配置其支持HTTP/2,需要以下步驟:


  • 使用openssl,執(zhí)行如下命令生成證書

  • openssl genrsa -out?server.key?2048

    openssl rsa -in server.key -out server.key

    openssl req -new -x509 -key server.key -out?ca.crt?-days 3650



    2. 官網(wǎng)下載Native的dll文件,拷貝到c:\windows\System32目錄下,以支持Apr Connector


    3. 修改server.xml,將支持http2的https Connector配置去掉注釋,修改其中對應(yīng)的證書路徑為第一步生成的路徑。

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="150" SSLEnabled="true" > <UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" /> <SSLHostConfig> <Certificate certificateKeyFile="conf/server.key" certificateFile="conf/ca.crt"/> </SSLHostConfig> </Connector>

    4. 重啟Tomcat


    5. 使用訪問


    6. 查看logs目錄下中對應(yīng)日期的accesslog, 默認(rèn)情況下,tomcat的配置中默認(rèn)開啟了accesslog ,此時我們發(fā)現(xiàn),請求使用的協(xié)議已經(jīng)是HTTP 2.0



    7. 為了觀察更加細(xì)致,可以配置Tomcat的日志級別,從而輸出更加詳細(xì)的日志。設(shè)置org.apache.coyote.http2.level = FINE,關(guān)于日志的原理,可以參考之前兩篇文章:

    Tomcat的Logging

    Tomcat的Logging -- 內(nèi)部實現(xiàn)方式


    8. github 下載一個測試的demo?GitHub - jfclere/h2_demos

    下載后需要在本地執(zhí)行.sh文件,生成對應(yīng)的html文件和相應(yīng)的images。

    9. 部署第8步生成的文件到某個特定應(yīng)用中,或是新建一個空應(yīng)用將其添加進(jìn)去,訪問這個應(yīng)用,查看頁面對應(yīng)的執(zhí)行時間。


    通過上面的這些步驟,我們可以更直觀的體驗一把HTTP/2帶來的性能提升。我們后面的文章再分析其實現(xiàn)原理,各位可以先看之前的這篇文章

    服務(wù)器推送之WebSocket--原理及Tomcat的實現(xiàn),了解協(xié)議的upgrade


    在Youtube上,有Tomcat 的commiter 之一 Mark 介紹Tomcat 的Http/2的視頻,墻外的朋友可以直接訪問該鏈接:

    墻內(nèi)的朋友,可以回復(fù)關(guān)鍵字http2,獲取下載地址


    相關(guān)閱讀

    Tomcat的Connector組件

    Tomcat高效響應(yīng)的秘密(二) keep alive

    Tomcat高效響應(yīng)的秘密(一) Sendfile與Gzip

    服務(wù)器推送之WebSocket--原理及Tomcat的實現(xiàn)

    Tomcat的Logging



    猜你喜歡

  • 深度揭秘亂碼問題背后的原因及解決方式

  • WEB應(yīng)用是怎么被部署的?

  • 怎樣調(diào)試Tomcat源碼

  • IDE里的Tomcat是這樣工作的!

  • 重定向與轉(zhuǎn)發(fā)的本質(zhì)區(qū)別

  • 怎樣閱讀源代碼



  • 本專欄由曾從事應(yīng)用服務(wù)器核心研發(fā)的工程師維護(hù)。文章深入Tomcat源碼,分析應(yīng)用服務(wù)器的實現(xiàn)細(xì)節(jié),工作原理及與之相關(guān)的技術(shù),使用技巧,工作實戰(zhàn)等。起于Tomcat但不止于此。同時會分享并發(fā)、JVM等,內(nèi)容多為原創(chuàng),歡迎關(guān)注。

    推薦關(guān)注同名公眾號:?Tomcat那些事兒

    編輯于 2016-06-14

    轉(zhuǎn)載于:https://www.cnblogs.com/xifenglou/p/9394948.html

    總結(jié)

    以上是生活随笔為你收集整理的配置Tomcat使用HTTP/2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。