(轉)Tomcat文件詳解

作web項目,最經常使用的服務器就是Apache的tomcat。雖然一直在用tomcat,但都是僅限在使用的階段,一直沒有深刻學習過。想深刻學習tomcat,首推的確定是官網:http://tomcat.apache.org/ (雖然全是英文,看起來比較晦澀,但仍是推薦你們在官網學習,一方面權威,另外一方面鍛鍊了本身的英文能力。博主本身英文很差,但仍堅持看官網。)java

開始瞭解一下tomcat的內部結構,博主用的tomcat版本是:apache-tomcat-8.0.3-windows-x86,解壓以後打開,裏面是:web

先看一下除了文件夾之外的其餘文件。數據庫

LICENSE顧名思義就是許可證,裏面記錄了tomcat的一些條款等等。apache

NOTICE裏面記錄了tomcat的新的通知,公告。bootstrap

RELEASE-NOTES這裏面記錄的是發行版本的說明,一些捆綁的API,新特性等等。windows

RUNNING.txt記錄了tomcat的運行環境以及怎樣配置參數,變量,啓動等等。tomcat

================華麗的分割線====================服務器

下面開始介紹文件夾裏面的內容。併發

bin文件夾app

bin文件夾下面放的是可執行性文件,其中:bat/exe文件是windows下可執行的腳本文件。sh文件時Linux/Unix下可執行的腳本文件。其中還有一些jar文件,後面將會說到。

下面是bin文件夾下全部文件:

開始一一介紹。

bootstrap.jar 從文件名能夠看出這個jar包是引導程序jar包,是tomcat的入口。

catalina.bat 這個腳本就比較重要了。這個腳本完成了不少基本操做,如啓動

關閉等,catalina.bat都參與其中。

catalina.sh文件做用同catalina.bat,只不過在Linux/Unix系統下運行。

catalina-tasks.xml 配置文件,主要是引入各類jar包。

commons-daemon-native.tar.gz Linux/Unix下。

configtest.bat 檢測語法是否正確的腳本文件。

cpappend.bat 這個腳本能夠這樣理解,classpath(cp)append就是將指定參數添加到classpath裏面。

digest.bat 博主暫時也沒弄清。

service.bat 啓動tomcat服務。和註冊tomcat服務那塊有關係。

setclasspath.bat 設置classpath的腳本,在catalin.bat腳本中調用,能夠設置java_home,jre_home等。

shutdown.bat  主要是檢查catalina.bat 執行所需環境,並調用catalina.bat 批處理文件關閉tomcat服務。

startup.bat 主要是檢查catalina.bat 執行所需環境,並調用catalina.bat 批處理文件啓動tomcat服務。

tcnative-1.dll 加速器組件,能夠提升性能。(也是在網上搜到的)

tomcat8.exe

tomcat8w.exe

tomcat-juli.jar Apache Tomcat由一個本身的實現了java.util.logging多個關鍵元素的實現。這個實現被稱爲「JULI」。實現的核心組件是定製化的LogManager,能夠獲取運行在Tomcat中的不一樣web應用(以及不一樣的class loader)。他支持爲應用配置單獨的日誌配置。當有web應用從內在中是被卸載時,會接到Tomcat的通知,以便他所引用的類能夠被清除,避免內存泄露。

tomcat-native.tar.gz 裏面放的是tomcat本地的library。

tool-wrapper.bat 工具包裝腳本

version.bat 通常是用來判斷系統版本獲取系統版本信息等。

 

conf(configurator)文件夾

conf(configurator)文件夾下面放的是配置文件

catalina.policy tomcat策略文件

catalina.properties catalina配置文件

context.xml tomcat公用的環境配置,也能夠在server.xml中配置<context />

logging.properties 日誌配置文件

server.xml 至關重要的配置,端口、線程池等都須要在這裏配置。

 

元素名

屬性

解釋

server

port

指定一個端口,這個端口負責監聽關閉tomcat的請求

shutdown

指定向端口發送的命令字符串

 

GlobalNamingResources

 

服務器的全局JNDI資源,能夠有子標籤<Resource></Resource>

Executor(線程池,一個或多個Connector能夠共享此線程池)

name

線程池名稱,名稱必須惟一

namePrefix

線程的名字前綴,用來標記線程名字的,這樣每一個線程就用這個前綴加上線程編號了,好比 catalina-exec-1 、catalina-exec-2

 

maxThreads

容許的最大線程池裏的線程數量,默認是200,大的併發應該設置的高一些,反正只是限制而已,不佔用資源

 

minSpareThreads

最小的保持活躍的線程數量,默認是25.這個要根據負載狀況自行調整了。過小了就影響反應速度,太大了白白佔用資源

 

maxIdleTime

最小的保持活躍的線程數量,默認是25.這個要根據負載狀況自行調整了。過小了就影響反應速度,太大了白白佔用資源

 

threadPriority

線程的等級。默認是Thread.NORM_PRIORITY

 

service

name

指定service的名字

Connector (表示客戶端和service之間的鏈接)

port

指定服務器端要建立的端口號,並在這個斷口監聽來自客戶端的請求

minProcessors

服務器啓動時建立的處理請求的線程數

 

maxProcessors

最大能夠建立的處理請求的線程數

 

enableLookups

若是爲true,則能夠經過調用request.getRemoteHost()進行DNS查詢來獲得遠程客戶端的實際主機名,若爲false則不進行DNS查詢,而是返回其ip地址

 

redirectPort

指定服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號

 

acceptCount

指定當全部可使用的處理請求的線程數都被使用時,能夠放處處理隊列中的請求數,超過這個數的請求將不予處理

 

connectionTimeout

指定超時的時間數(以毫秒爲單位)

 

Engine (表示指定service中的請求處理機,接收和處理來自Connector的請求)

name

 

defaultHost

指定缺省的處理請求的主機名,它至少與其中的一個host元素的name屬性值是同樣的

 

jvmRoute

   

host (表示一個虛擬主機、而且能夠包含Context子節點配置虛擬目錄)

name

指定主機名

appBase

應用程序基本目錄,即存放應用程序的目錄

 

unpackWARs

若是爲true,則tomcat會自動將WAR文件解壓,不然不解壓,直接從WAR文件中運行應用程序

 

autoDeploy

自動部署

 

xmlValidation

是否驗證xml

 

xmlNamespaceAware

   

Realm (表示存放用戶名,密碼及role的數據庫)

className

指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口

Context(host子節點配置虛擬目錄)

path

虛擬目錄名稱

docBase

物理路徑

 

Debug

Debug模式

 

Reload

True 從新加載,修改後自動加載

 

上面是server.xml元素的含義。基本配置都在這裏了。

tomcat-users.xml tomcat配置用戶的文件。是指定控制檯用戶、角色、密碼的。

<tomcat-users>
 <role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="123456" roles="admin,manager"/>
</tomcat-users>

經過以上配置,能夠爲tomcat添加具備管理員權限的用戶。

web.xml 訪問tomcat入口。配置加載類和資源,如歡迎頁等。

lib文件夾

lib文件夾下面放的是tomcat提供的jar包,資源庫文件。tomcat運行須要。

Log文件夾

log文件夾存放tomcat日誌文件 

Temp文件夾

temp文件夾存放臨時文件

webapps文件夾

webapps文件夾是Tomcat發佈web項目的目錄,默認存放了文檔,examples,主機配置等文件。

work文件夾

存放jsp編譯後的class文件。

 

大致tomcat的結構就是這樣,大部分是經過查資料,把各個文件信息整合到一塊。

 

轉自:http://my.oschina.net/leamon/blog/209809

相關文章
相關標籤/搜索