1. 程式人生 > 其它 >Tomcat相關目錄及配置檔案總結

Tomcat相關目錄及配置檔案總結

Tomcat根目錄介紹

【bin】目錄主要是用來存放tomcat的命令,主要有兩大類,一類是以.sh結尾的(linux命令),另一類是以.bat結尾的(windows命令)。 很多環境變數的設定都在此處,例如可以設定JDK路徑、TOMCAT路徑 startup 用來啟動tomcat shutdown 用來關閉tomcat 修改catalina可以設定tomcat的記憶體
【conf】目錄主要是用來存放tomcat的一些配置檔案。
  • server.xml可以設定埠號、設定域名或IP、預設載入的專案、請求編碼
  • web.xml可以設定tomcat支援的檔案型別
  • context.xml可以用來配置資料來源之類的
  • tomcat-users.xml用來配置管理tomcat的使用者與許可權
  • 在Catalina目錄下可以設定預設載入的專案

【lib】目錄主要用來存放tomcat執行需要載入的jar包。   例如,像連線資料庫的jdbc的包我們可以加入到lib目錄中來。
【logs】目錄用來存放tomcat在執行過程中產生的日誌檔案,非常重要的是在控制檯輸出的日誌。(清空不會對tomcat執行帶來影響)   在windows環境中,控制檯的輸出日誌在catalina.xxxx-xx-xx.log檔案中   在linux環境中,控制檯的輸出日誌在catalina.out檔案中
【temp】目錄使用者存放tomcat在執行過程中產生的臨時檔案。(清空不會對tomcat執行帶來影響)
【webapps】目錄用來存放應用程式   當tomcat啟動時會去載入webapps目錄下的應用程式。可以以資料夾、war包、jar包的形式釋出應用。   當然,你也可以把應用程式放置在磁碟的任意位置,在配置檔案中對映好就行。
【work】目錄用來存放tomcat在執行時的編譯後文件,例如JSP編譯後的檔案。   清空work目錄,然後重啟tomcat,可以達到清除快取的作用。


下面主要說明下 tomcat的conf目錄下各個配置檔案

1. web.xml:預設(歡迎)檔案的設定

在 tomcat4/conf/web.xml 中,<welcome-file-list>與IIS中的預設檔案意思相同,這也就是為什麼我們只輸入"主機地址 + 埠號"就可以訪問我們的專案了。

<welcome-file-list>
 
    <welcome-file>index.html</welcome-file>
 
   <welcome-file>index.htm</welcome-file>
 
     <welcome-file>index.jsp</welcome-file>
 
</welcome-file-list>

2. tomcat-users.xml:

使用者配置
在進行具體Tomcat管理之前,先給tomcat新增一個使用者,使這個使用者有許可權來進行管理。
開啟conf目錄下的tomcat-users.xml檔案,在相應的位置新增下面一行:

<user name="user" password="user" roles="standard,manager"/> 

  然後重啟 tomcat,在瀏覽器中輸入http://localhost:8080/manager/,會彈出對話方塊,輸入上面的使用者名稱和密碼即可。

  或者就是點選tomcat預設啟動頁右側的三個按鈕需要的訪問許可權。如下圖所示: 

   

3. server.xml:

下面講述這個檔案中的基本配置資訊,更具體的配置資訊請參考tomcat的文件:
server:
1、port 指定一個埠,這個埠負責監聽關閉tomcat的請求
2、shutdown 指定向埠傳送的命令字串


service:
1、name 指定service的名字


 Connector (表示客戶端和service之間的連線):
1、port 指定伺服器端要建立的埠號,並在這個斷口監聽來自客戶端的請求
2、minProcessors 伺服器啟動時建立的處理請求的執行緒數
3、maxProcessors 最大可以建立的處理請求的執行緒數
4、enableLookups 如果為true,則可以通過呼叫request.getRemoteHost()進行DNS查詢來得到遠端客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址
5、redirectPort 指定伺服器正在處理http請求時收到了一個SSL傳輸請求後重定向的埠號
6、acceptCount 指定當所有可以使用的處理請求的執行緒數都被使用時,可以放到處理佇列中的請求數,超過這個數的請求將不予處理
7、connectionTimeout 指定超時的時間數(以毫秒為單位)

Engine (表示指定service中的請求處理機,接收和處理來自Connector的請求):
1、defaultHost 指定預設的處理請求的主機名,它至少與其中的一個host元素的name屬性值是一樣的

 Context (表示一個web應用程式):
1、docBase 應用程式的路徑或者是WAR檔案存放的路徑
2、path 表示此web應用程式的url的字首,這樣請求的url為  http://localhost:8080/path/****
3、reloadable 這個屬性非常重要,如果為true,則tomcat會自動檢測應用程式的 /WEB-INF/lib  和 /WEB-INF/classes 目錄的變化,自動裝載新的應用程式,我們可以在不重起tomcat的情況下改變應用程式


host (表示一個虛擬主機):
1、name 指定主機名
2、appBase 應用程式基本目錄,即存放應用程式的目錄
3、unpackWARs 如果為true,則tomcat會自動將WAR檔案解壓,否則不解壓,直接從WAR檔案中執行應用程式

 

Logger (表示日誌,除錯和錯誤資訊):
1、className 指定logger使用的類名,此類必須實現org.apache.catalina.Logger 介面
2、prefix 指定log檔案的字首
3、suffix 指定log檔案的字尾
4、timestamp 如果為true,則log檔名中要加入時間,如例:localhost_log.2001-10-04.txt


Realm (表示存放使用者名稱,密碼及role的資料庫):
1、className 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm介面


Valve (功能與Logger差不多,其prefix和suffix屬性解釋和Logger 中的一樣):
1、className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應用程式的訪問資訊


directory(指定log檔案存放的位置):
  1、pattern 有兩個值,common方式記錄遠端主機名或ip地址,使用者名稱,日期,第一行請求的字串,HTTP響應程式碼,傳送的位元組數。combined方式比common方式記錄的值更多


4. tomcat context.xml:

  1. 在tomcat 5.5之前:Context體現在/conf/server.xml中的Host裡的<Context>元素,它由Context介面定義。每個<Context元素代表了執行在虛擬主機上的單個Web應用,例如:

<Context path="/kaka" docBase="kaka" debug="0" reloadbale="true">

  1>path:即要建立的虛擬目錄,,注意是/kaka,它指定訪問Web應用的URL入口,如http://localhost:8080/kaka/****
  2>docBase:為實際目錄在硬碟上的位置(應用程式的路徑或者是WAR檔案存放的路徑)
  3>reloadable:如果這個屬性設為true,Tomcat伺服器在執行狀態下會監視在WEB-INF/classes和Web-INF/lib目錄CLASS檔案的改變,如果監視到有class檔案被更新,伺服器自動重新載入Web應用,這樣我們可以在不重起tomcat的情況下改變應用程式,也就是熱部署。

  一個Host元素中巢狀任意多的Context元素。每個Context的路徑必須是惟一的,而這個唯一性是由path屬性定義確定的。另外,你必須定義一個path=“” 的context,這個Context稱為該虛擬主機的預設web應用,用來處理那些不能匹配任何Context的Context路徑的請求。

  2. 在tomcat 5.5之後:不推薦在server.xml中進行配置,而是在/conf/context.xml中進行獨立的配置。因為server.xml是不可動態重載入的資源,伺服器一旦啟動了以後,要修改這個檔案,就得重啟伺服器才能重新載入。而context.xml檔案則不然,tomcat伺服器會定時去掃描這個檔案。一旦發現檔案被修改(時間戳改變了),就會自動重新載入這個檔案,而不需要重啟伺服器。

<Context path="/kaka" docBase="kaka" debug="0" reloadbale="true" privileged="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<WatchedResource>WEB-INF/kaka.xml</WatchedResource>

  監控資原始檔,如果web.xml || kaka.xml改變了,則自動重新載入改應用。

<Resource name="jdbc/testSiteds" 表示指定的jndi名稱
  auth="Container" 表示認證方式,一般為Container
  type="javax.sql.DataSource"
  maxActive="100" 連線池支援的最大連線數
  maxIdle="30" 連線池中最多可空閒maxIdle個連線
  maxWait="10000" 連線池中連線用完時,新的請求等待時間,毫秒
  username="root" 表示資料庫使用者名稱
  password="root" 表示資料庫使用者的密碼
  driverClassName="com.mysql.jdbc.Driver" 表示JDBC DRIVER
  url="jdbc:mysql://localhost:3306/testSite" /> 表示資料庫URL地址


  附: context.xml的三個作用範圍:
    1. tomcat server級別:
      在/conf/context.xml裡配置
    2. Host級別:
      在/conf/Catalina/${hostName}裡新增context.xml,繼而進行配置
    3. web app 級別:
      在/conf/Catalina/${hostName}裡新增${webAppName}.xml,繼而進行配置