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

          <2011年5月>
          24252627282930
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類(15)

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 南阳市| 涞源县| 富锦市| 东乡族自治县| 吉木萨尔县| 藁城市| 湟中县| 新闻| 陆丰市| 从江县| 祁连县| 巫溪县| 甘谷县| 八宿县| 洮南市| 凌源市| 土默特左旗| 巴林右旗| 涿州市| 凌海市| 镇坪县| 华容县| 彰武县| 石嘴山市| 横山县| 兴城市| 武鸣县| 溧阳市| 萨嘎县| 盖州市| 无棣县| 滦平县| 旌德县| 屏东县| 白城市| 社旗县| 清丰县| 偃师市| 资兴市| 海丰县| 闵行区|