bin,可執(zhí)行文件
conf,配置文件
lib,Tomcat的依賴(lài)庫(kù),web應(yīng)用依賴(lài)的包也可放這里
logs,Tomcat默認(rèn)存放日志位置
temp,臨時(shí)文件夾
webapps,默認(rèn)應(yīng)用部署目錄
work,供web應(yīng)用使用,例如jsp編譯成的servlet就放這里
2、JVM啟動(dòng)參數(shù)環(huán)境變量JAVA_OPTS
-server –Xms512m –Xmx512m
Xms初始堆,
Xmx堆內(nèi)存,受限于物理內(nèi)存
一般讓兩者一樣
3、Tomcat架構(gòu)與配置文件server.xml配置結(jié)構(gòu)如下:
<Server> <Service> <Connector> </Connector> <Engine> <Host> <Context> </Context> </Host> </Engine> </Service> </Server>
tomcat結(jié)構(gòu)圖如下(侵權(quán)刪):
從里面到Service這一層可以稱(chēng)作Container
Server服務(wù)器下可以有多個(gè)Service
Service:可以配置多個(gè)
Connector:接收用戶(hù)請(qǐng)求的,可以配置多個(gè)
Connector的實(shí)現(xiàn):Coyote,默認(rèn)BIO Connector阻塞式IO,java傳統(tǒng)IO
Engine:是處理Connector接收到的請(qǐng)求,java代碼由他處理
Host:虛擬主機(jī)
Context:一個(gè)Context就是一個(gè)應(yīng)用
Web應(yīng)用:Context和Web應(yīng)用可以畫(huà)等號(hào)
Container:由Catalina實(shí)現(xiàn)。
Catalina也是Tomcat中實(shí)現(xiàn)容器的組件,用來(lái)執(zhí)行Web應(yīng)用
4、請(qǐng)求處理流程客戶(hù)端發(fā)出請(qǐng)求,Connector負(fù)責(zé)解析請(qǐng)求,然后交給Container處理,Container處理請(qǐng)求,例如獲取資源,然后讓Connector返回相關(guān)內(nèi)容。
二、Tomcat的Connector和線(xiàn)程池配置 1、Connector參數(shù)配置port:端口號(hào)
address:服務(wù)器上的IP不止一個(gè),如果不配置,默認(rèn)監(jiān)聽(tīng)所有地址,可以通address指定監(jiān)聽(tīng)哪些地址
protocol:協(xié)議,默認(rèn)http1.1
connectionTimeout:連接超時(shí)時(shí)間,默認(rèn)單位毫秒
acceptCount:如果系統(tǒng)沒(méi)有空閑線(xiàn)程能處理請(qǐng)求,請(qǐng)求就要排隊(duì),排隊(duì)默認(rèn)值100,超過(guò)的就不處理了。
maxConnections:支持連接數(shù),與線(xiàn)程池有關(guān),-1表示不限制
2、 線(xiàn)程池和線(xiàn)程池配置事先創(chuàng)建一定數(shù)目的線(xiàn)程,當(dāng)有任務(wù)的時(shí)候,從池中取出使用,用完就放回池中。
Tomcat中使用的是彈性線(xiàn)程池。
minSpareThreds:最小空閑線(xiàn)程數(shù)
maxThreads:線(xiàn)程數(shù)
配置方式:
1、線(xiàn)程池配置項(xiàng)<Executor>
minSpareThreads
maxThreads
2、Connector配置線(xiàn)程池
1)指定依賴(lài)的線(xiàn)程池配置,即指定依賴(lài)<Executor>
2)直接指定線(xiàn)程池配置參數(shù),在Connector中配置minSpareThreads,maxThreads
3、curl和telnet連接可以用這兩種方式發(fā)出請(qǐng)求
三、Tomcat的日志和配置和war包部署 1、tomcat的日志分類(lèi)系統(tǒng)運(yùn)行日志
訪(fǎng)問(wèn)日志:在server.xml中配置
應(yīng)用日志
2、部署方式先將項(xiàng)目有打成war包
放置在webapps目錄下
啟動(dòng)tomcat
可以看見(jiàn)war包已經(jīng)被解壓在webapps目錄下
四、基本配置示例<?xml version="1.0" encoding="UTF-8"?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener SSLEngine="on" className="org.apache.catalina.core.AprLifecycleListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource auth="Container" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" name="UserDatabase" pathname="conf/tomcat-users.xml" type="org.apache.catalina.UserDatabase" /> </GlobalNamingResources> <Service name="Catalina"> <!-- Executor線(xiàn)程池配置項(xiàng),maxThreads線(xiàn)程數(shù),minSpareThreds最小空閑線(xiàn)程數(shù) --> <Executor name="myThreadPool" namePrefix="catalina-exec-" maxThreads="120" minSpareThreads="4" /> <!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at : Java HTTP Connector: /docs/config/http.html (blocking & non-blocking) Java AJP Connector: /docs/config/ajp.html APR (HTTP/AJP) Connector: /docs/apr.html Define a non-SSL/TLS HTTP/1.1 Connector on port 8080 --> <!-- connectionTimeout單位毫秒,port訪(fǎng)問(wèn)端口號(hào),executor="myThreadPool"設(shè)置Connector使用名字叫myThreadPool的線(xiàn)程池配置 當(dāng)然也可以直接在Connector中直接配置線(xiàn)程池選項(xiàng)maxThreads和minSpareThreads,但是最好配置成線(xiàn)程池配置項(xiàng),方便多個(gè)Connector依賴(lài) --> <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" executor="myThreadPool" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Engine defaultHost="localhost" name="Catalina"> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase" /> </Realm> <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> <!-- directory日志輸出路徑,可以配置相對(duì)路徑(相對(duì)于tomcat安裝的根路徑),也可以配置絕對(duì)路徑 prefix日志文件前綴 suffer日志文件名字 pattern日志格式,下面是tomcat默認(rèn)日志格式 pattern具體看tomcat文檔,這里給出一部分 %m是請(qǐng)求方法 %a是ip %t是時(shí)間 %s是狀態(tài)碼 %b是服務(wù)端下發(fā)字節(jié)數(shù) %{User-Agent}i是發(fā)起請(qǐng)求的客戶(hù)端 fileDateFormat="yyyy-MM-dd."時(shí)戳 rotatable="true"按照f(shuō)ileDateFormat時(shí)戳的改變進(jìn)行日志滾動(dòng)(日志切分) --> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt" /> <Context docBase="mall" path="/mall" reloadable="true" source="org.eclipse.jst.jee.server:mall" /> </Host> </Engine> </Service> </Server>
文章名稱(chēng):Tomcat學(xué)習(xí)總結(jié)
文章起源:http://www.rwnh.cn/article18/cgjedp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、用戶(hù)體驗(yàn)、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)、電子商務(wù)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)