Tomcat6.x目錄與server.xml詳解
本文參考自:Tomcat全攻略
參考鏈接:http://www.ibm.com/developerworks/cn/java/l-tomcat/index.html#1
Tomcat 服務(wù)器是一個(gè)免費(fèi)的開(kāi)放源代碼的Web 應(yīng)用服務(wù)器,目前最新版本是6.x,相對(duì)5.x性能提升很多,主要優(yōu)化了內(nèi)存使用,增強(qiáng)IO能力,重新構(gòu)造集群功能。
近期對(duì)Tomcat6.x作深入學(xué)習(xí),參考上述聲明的Tomcat全攻略,由于筆者是2001年針對(duì)Tomcat4.x所寫,故參考之并針對(duì)Tomcat6.x做了總結(jié),形成此篇學(xué)習(xí)筆記,希望對(duì)學(xué)習(xí)的人有所幫助,本文涵蓋了:Tomcat目錄、Server.xml元素講解,數(shù)據(jù)庫(kù)連接池配置、線程池配置、虛擬目錄配置。關(guān)于如何下載、安裝、運(yùn)行Tomcat略,請(qǐng)google,相信有詳細(xì)的文章講述。
tomcat的目錄結(jié)構(gòu)如下:
目錄名 |
簡(jiǎn)介 |
bin |
存放啟動(dòng)和關(guān)閉tomcat腳本 |
conf |
包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xml |
work |
存放jsp編譯后產(chǎn)生的class文件 |
webapp |
存放應(yīng)用程序示例,以后你要部署的應(yīng)用程序也要放到此目錄 |
logs |
存放日志文件 |
lib |
這三個(gè)目錄主要存放tomcat所需的jar文件 |
server.xml配置簡(jiǎn)介
元素名 |
屬性 |
解釋 |
server |
port |
指定一個(gè)端口,這個(gè)端口負(fù)責(zé)監(jiān)聽(tīng)關(guān)閉tomcat的請(qǐng)求 |
shutdown |
指定向端口發(fā)送的命令字符串 |
|
GlobalNamingResources |
服務(wù)器的全局JNDI資源,可以有子標(biāo)簽<Resource></Resource> |
|
Executor(線程池,一個(gè)或多個(gè)Connector可以共享此線程池) |
name |
線程池名稱,名稱必須唯一 |
namePrefix |
線程的名字前綴,用來(lái)標(biāo)記線程名字的,這樣每個(gè)線程就用這個(gè)前綴加上線程編號(hào)了,比如 catalina-exec-1 、catalina-exec-2 |
|
maxThreads |
允許的最大線程池里的線程數(shù)量,默認(rèn)是200,大的并發(fā)應(yīng)該設(shè)置的高一些,反正只是限制而已,不占用資源 |
|
minSpareThreads |
最小的保持活躍的線程數(shù)量,默認(rèn)是25.這個(gè)要根據(jù)負(fù)載情況自行調(diào)整了。太小了就影響反應(yīng)速度,太大了白白占用資源 |
|
maxIdleTime |
最小的保持活躍的線程數(shù)量,默認(rèn)是25.這個(gè)要根據(jù)負(fù)載情況自行調(diào)整了。太小了就影響反應(yīng)速度,太大了白白占用資源 |
|
threadPriority |
線程的等級(jí)。默認(rèn)是Thread.NORM_PRIORITY |
|
service |
name |
指定service的名字 |
Connector (表示客戶端和service之間的連接) |
port |
指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)斷口監(jiān)聽(tīng)來(lái)自客戶端的請(qǐng)求 |
minProcessors |
服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù) |
|
maxProcessors |
最大可以創(chuàng)建的處理請(qǐng)求的線程數(shù) |
|
enableLookups |
如果為true,則可以通過(guò)調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來(lái)得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢,而是返回其ip地址 |
|
redirectPort |
指定服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào) |
|
acceptCount |
指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理 |
|
connectionTimeout |
指定超時(shí)的時(shí)間數(shù)(以毫秒為單位) |
|
Engine (表示指定service中的請(qǐng)求處理機(jī),接收和處理來(lái)自Connector的請(qǐng)求) |
name |
|
defaultHost |
指定缺省的處理請(qǐng)求的主機(jī)名,它至少與其中的一個(gè)host元素的name屬性值是一樣的 |
|
jvmRoute |
||
host (表示一個(gè)虛擬主機(jī)、并且可以包含Context子節(jié)點(diǎn)配置虛擬目錄) |
name |
指定主機(jī)名 |
appBase |
應(yīng)用程序基本目錄,即存放應(yīng)用程序的目錄 |
|
unpackWARs |
如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓,否則不解壓,直接從WAR文件中運(yùn)行應(yīng)用程序 |
|
autoDeploy |
自動(dòng)部署 |
|
xmlValidation |
是否驗(yàn)證xml |
|
xmlNamespaceAware |
||
Realm (表示存放用戶名,密碼及role的數(shù)據(jù)庫(kù)) |
className |
指定Realm使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Realm接口 |
Context(host子節(jié)點(diǎn)配置虛擬目錄) |
path |
虛擬目錄名稱 |
docBase |
物理路徑 |
|
Debug |
Debug模式 |
|
Reload |
True 重新加載,修改后自動(dòng)加載 |
上面我們講述了server .xml個(gè)元素的含義,下面我們給出詳細(xì)示例
Tomcat數(shù)據(jù)庫(kù)連接池配置如下:
server.xml配置Resource
<Resource name="jdbc/ExampleDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="APP" password="APP" driverClassName="org.apache.derby.jdbc.ClientDriver" url="jdbc:derby://localhost:1527/springside-example;create=true"/>
context.xml文件增加:
<WatchedResource>WEB-INF/web.xml</WatchedResource> <ResourceLink name="jdbc/ExampleDB" global="jdbc/ExampleDB" type="javax.sql.DataSource"/>
Tomcat共享線程池配置:
取消Executor注釋,修改連接數(shù)至自己合適的數(shù)值既可。
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="200" minSpareThreads="100" maxIdleTime="60000"/>
executor="tomcatThreadPool" 標(biāo)明此連接使用上面配置的名稱為tomcatThreadPool的連接池,無(wú)屬性共享連接不會(huì)生效 protocol表示使用的是 http協(xié)議 端口號(hào)為8080
<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" connectionTimeout="20000" executor="tomcatThreadPool" acceptCount="100" useBodyEncodingForURI="true" enableLookups="false" />
虛擬目錄配置:
在<host></host>之間增加如下
<!-- 配置虛擬目錄,例如:http://localhost:8080 -->
<Context path="/" docBase="D:\workspace\code\HBJH\web"></Context>
附件中是取自springside3中,Tomcat production config配置示例,即生產(chǎn)環(huán)境下Tomcat配置
posted on 2011-05-10 21:04 空白 閱讀(867) 評(píng)論(0) 編輯 收藏 所屬分類: Java