柚子快報(bào)邀請(qǐng)碼778899分享:java Tomcat
柚子快報(bào)邀請(qǐng)碼778899分享:java Tomcat
一、Tomcat體系架構(gòu)
1.1 Tomcat介紹
Tomcat 是一個(gè)免費(fèi)的、開源的、輕量級(jí)的Web應(yīng)用服務(wù)器。
Tomcat8.5的特點(diǎn)
支持Servlet3.1
默認(rèn)采用NIO,移除BIO
支持NIO2(AIO,異步非阻塞IO)
支持HTTP/2協(xié)議
默認(rèn)采用異步日志處理
1.2 Tomcat啟動(dòng)方式
一般啟動(dòng):startup.bat/sh
嵌入式啟動(dòng):springboot
Debug啟動(dòng)
1.3 Tomcat項(xiàng)目部署
隱式部署 直接將文件夾、war、jar放到webapps目錄,tomcat會(huì)根據(jù)文件夾名稱自動(dòng)生成虛擬路徑。 特點(diǎn):部署簡(jiǎn)單。 缺點(diǎn):項(xiàng)目修改需要重啟Tomcat。 顯示部署 顯示部署分為兩種: 1) 添加context元素 在配置文件(server.xml)的Host標(biāo)簽下加入Context標(biāo)簽。
2)新建xml文件 在/conf/Catalina/localhost文件夾下創(chuàng)建xml文件(訪問路徑為文件名)。 例如:demo.xml,內(nèi)容為:
1.4 Tomcat目錄結(jié)構(gòu)
bin目錄
startup:檢查catalina執(zhí)行所需環(huán)境,并調(diào)用catalina啟動(dòng)tomcat。 catalina:真正執(zhí)行啟動(dòng),可以在該文件中設(shè)置虛擬機(jī)參數(shù)。 shutdown:停止tomcat。 version:查看版本號(hào)。 configtest:校驗(yàn)tomcat配置文件server.xml格式、內(nèi)容等是否合法。 server:安裝tomcat服務(wù)。安裝后可以用系統(tǒng)服務(wù)的方式啟動(dòng)。
webapps 目錄
存放web項(xiàng)目的目錄,每一個(gè)文件夾代表一個(gè)項(xiàng)目。tomcat安裝后存在的文件夾屬于tomcat默認(rèn)項(xiàng)目,其中ROOT項(xiàng)目在訪問時(shí)不需要加項(xiàng)目名稱。
lib目錄
tomcat類庫(kù),這個(gè)目錄下的jar部署在該tomcat下的所有項(xiàng)目都可以共享。 work目錄 存放項(xiàng)目運(yùn)行時(shí)生成的文件。
temp目錄
存放臨時(shí)文件,tomcat停止后會(huì)刪除。
logs目錄
存放tomcat日志文件。 localhost.xx.log:web應(yīng)用的內(nèi)部程序日志。 catalina.xx.log:控制臺(tái)日志。 host-manager.xx.log:tomcat管理頁(yè)面host-manager項(xiàng)目操作日志。 localhost_access_log_xx.log:tomcat訪問日志。
conf目錄
server.xml:tomcat配置文件。 web.xml:tomcat中所有應(yīng)用默認(rèn)的部署描述文件,定義了基礎(chǔ)的Servlet和MIME映射。如果部署的應(yīng)用不包含web.xml,tomcat將使用該文件初始化部署描述。 context.xml:定義所有web應(yīng)用需要加載的Context配置,如果web應(yīng)用指定了自己的context.xml,該文件將被覆蓋。 tomcat-users.xml:配置tomcat用戶信息。
1.5 Tomcat 組件
1.5.1 Server
頂級(jí)組件,代表tomcat運(yùn)行的實(shí)例。
1.5.2 Service
一個(gè)Server可以包含多個(gè)Service。
1.5.3 Connector
連接器,監(jiān)聽轉(zhuǎn)換socket請(qǐng)求,將請(qǐng)求交給Container處理,支持不同協(xié)議和不同的IO方式。
1.5.4 Container
表示能夠執(zhí)行客戶請(qǐng)求并返回響應(yīng)的一類對(duì)象。不同級(jí)別的容器有:Engine、Host、Context、Wrapper。
1.5.5 Engine
整個(gè)Servlet引擎,最高級(jí)的容器對(duì)象。
1.5.6 Host
Servlet引擎中的虛擬機(jī),主要與域名有關(guān),一個(gè)服務(wù)器有多個(gè)域名,可以使用多個(gè)host。
1.5.7 Context
代表Servlet的Context,它具備了Servlet運(yùn)行的基本環(huán)境,表示web應(yīng)用程序本身。
1.5.8 Wrapper
用于表示web應(yīng)用中定義的Servlet。
1.5.9 Executor
tomcat組件間可以共享的線程池。
二、Tomcat優(yōu)化
2.1 server.xml優(yōu)化
tomcat配置的優(yōu)化,可參考tomcat默認(rèn)管理頁(yè)面(http://localhost:8080)中的TomcatXX Configuration。
Connector 連接器優(yōu)化 IO模型優(yōu)化 connectionTimeout="20000"redirectPort="8443" /> protocol 可選參數(shù): org.apache.coyote.http11.Http11Protocol - blocking Java connector org.apache.coyote.http11.Http11NioProtocol - non blocking Java NIO connector org.apache.coyote.http11.Http11Nio2Protocol - non blocking Java NIO2 connector org.apache.coyote.http11.Http11AprProtocol - the APR/native connector.2)配置線程池 Executor 配置線程池 Executor maxThreads="150" minSpareThreads="4"/> port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 去除tomcat訪問 記錄 關(guān)閉自動(dòng)重載,熱部署方式 柚子快報(bào)邀請(qǐng)碼778899分享:java Tomcat 參考文章
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。