tomcat配置文件詳解

Tomcat的服務器配置文件server.xml解析


Tomcat服務器是由一系列可配置的組件構成,其核心組件是Catalina Servlet容器,它是所有其他Tomcat組件的頂層容器。Tomcat的組件可以在<CATALINA_HOME>/conf/server.xml文件中進行配置,每個Tomcat的組件在server.xml文件中對應一種配置元素.一下代碼以XML的形式展示了各種Tomcat組件之間的關係:


<Server>元素

        代表了整個Catalina   Servlet容器,它是Tomcat實例的頂層元素.可包含一個或多個<Service>元素.


        <Service>元素

        包含一個<Engine>元素,以及一個或多個<Connector>元素,這些<Connector>元素共享同一個<Engine>元素.


        <Connector>元素

        代表和客戶程序實際交互的組件,他負責接收客戶請求,以及向客戶返回響應結果.


        <Engine>元素

        每個<Service>元素只能包含一個<Engine>元素.   <Engine>元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求.


        <Host>元素

        一個<Engine>元素中可以包含多個<Host>元素.每個<Host>元素定義了一個虛擬主機,它可以包含一個或多個Web應用.


        <Context>元素

        每個<Context>元素代表了運行虛擬主機上的但個Web應用.一個<Host>元素中可以包含多個<Context>元素.


Tomcat服務器是由一系列可配置的組件構成,Tomcat的組件可以在<CATALINA_HOME>\conf\server.xml文件中進行配置,每個Tomcat組件和server.xml文件中的一種配置元素對應.下面就一些常用的元素做了介紹.關於server.xml的更多信息,可以參考Tomcat的文檔:


          <CATALINA_HOME>/webapps/tomcat-docs/config/index.html


          下面是server.xml文件的樣例:

1.     配置Server元素


        <Server>元素代表了整個Catalina Servler容器,它是Tomcat實例的頂層元素,由org.apache.catalina.Server接口來定義.<Server>元素中可以包含一個或者多個<Service>元素,但<Server>元素不能作爲任何其他元素的子元素.範例代碼中定義的<Server>元素如下:


            <Server     port="8005"     shutdown="SHUTDOWN"     debug="0">

          <Server>屬性含義:


--------------------------------------------------------------

          className :指定實現org.apache.catalina.Server接口的類,默認值爲org.apache.catalina.core.StandardServer.

          port :指定Tomcat服務器監聽shutdown命令的端口.終止Tomcat服務運行時,必須在Tomcat服務器所在的機器上發出Shutdown命令.該屬性是必須設定的.

          shutdown :指定終止Tomcat服務器運行時,發給Tomcat服務器的shutdown監聽端口的字符串.該屬性是必須設定的.

2. 配置Service元素


          <Service>元素由org.apache.catalina.Service接口定義,它包含一個<Engine>元素,以及一個或多個<Connector>元素,這些<Connector>元素共享一個<Engine>元素.    

 例如,在範例文件中配置了兩個<Service>元素


          <Service     name="Catalina">

           <Service    name="Apache">

          第一個<Service>處理所有直接由Tomcat服務器接收的Web客戶請求,第二個<Service>處理由Apache服務器轉發過來的Web客戶請求.


          <Service>屬性含義:


--------------------------------------------------------------

          className       :指定實現org.apache.catalina.Service接口的類,默認值爲org.apache.catalina.core.StandardService.

          name                 :定義Service的名字.


3.     配置Engine元素


          <Engine>元素由org.apahe.catalina.Engine接口定義.     每個<Service>元素只能包括一個<Engine>元素.    <Engine>元素處理在同一個<Service>中所有<Connector>元素接收到的客戶請求.     例如,在範例server.xml文件中配置了一下的<Engine>元素:


          <Engine     name="Catalina"     defaultHost="localhost"     debug="0">  


          <Engine>屬性含義:


--------------------------------------------------------------

          className       :指定實現org.apache.catalina.Engine接口的類,默認值爲org.apache.catalina.core.StandardEngine.

          name                 :定義Engine的名字.


          在<Engine>元素中可以包含如下的子元素:

                  <Logger>

                  <Realm>

                  <Valve>

                  <Host>


4.     配置Host元素


          <Host>元素由org.apache.catalina.Host接口定義.一個<Engine>元素可以包含多個<Host>元素.每個<Host>元素定義了一個虛擬主機,它可以包含一個或多個Web應用.     例如,在樣例server.xml中配置了以下<Host>元素:


                <Host     name="localhost"     debug="0"     appBase="webapps"

                            unpackWARs="true"     autoDeploy="true">  


          以上代碼定義了一個名爲localhost的虛擬主機,Web客戶訪問它的URL爲:     http://localhost:8080/


          <Host>屬性含義:

--------------------------------------------------------------

          className           :指定實現org.apache.catalina.Host接口的類,默認值爲org.apache.catalina.core.StandardHost.

          appBase               :指定虛擬主機的目錄,可以指定絕對目錄,也可以指定相對於<CATALINA_HOME>的相對目錄.     如果此項沒有設定,默認值爲<CATALINA_HOME>/webapps.

          unpackWARs :如果此項設爲true,表示將把Web應用的WAR文件先展開爲開放目錄結構後再運行.如果設爲false,將直接運行WAR文件.

          autoDeploy :如果此項設爲true,表示當Tomcat服務器處於運行狀態時,能夠監測appBase下的文件,如果有新的Web應用加入進來,會自動發佈這個Web應用.

          alias :指定虛擬主機的別名,可以指定多個別名.

          deployOnStartup :如果此項設爲true,表示Tomcat服務器啓動時會自動發佈appBase目錄下的所有Web應用,如果Web應用在server.xml中沒有相應的<Context>元素,將採用Tomcat默認的Context.     deployOnStartup的默認值爲true.

          name                     :定義虛擬主機的名字.}


          在<Host>元素中可以包含如下的子元素:

                  <Logger>

                  <Realm>

                  <Valve>

                  <Context>


5.     配置Context元素


          <Context>元素由org.apache.catalina.Context接口定義.     <Context>元素是使用最頻繁的元素.     每個<Context>元素代表了運行在虛擬主機上的單個Web應用.     一個<Host>元素中可以包含多個<Context>元素.     例如,     在樣例server.xml文件中配置了以下<Context>元素:


                 <Context     path="/sample"     docBase="sample"     debug="0"     reloadable="true">      


          <Context>屬性含義:

--------------------------------------------------------------

          className         :指定實現org.apache.catalina.Context接口的類,默認值爲org.apache.catalina.core.StandardContext.

          path                   :指定訪問該Web應用的URL入口.

          docBase             :指定Web應用的文件路徑.可以給定絕對路徑,也可以給定相對於Host的appBase屬性的相對路徑.     如果Web應用採用開放目錄結構,那就指定Web應用的根目錄;如果Web應用是個WAR文件,那就指定WAR文件的路徑.

          reloadable       :如果這個屬性設爲true,Tomcat服務器在運行狀態下會監視在WEB-INF/class和WEB-INF/lib目錄下CLASS文件的改動.如果檢測到有calss文件被更新,服務器會自動重新加載Web應用.

          cookies             :指定是否通過Cookie來支持Session,默認爲true.

          useNaming         :指定是否支持JNDI,默認爲true.


          在<Context>元素中可以包含如下的子元素:

                  <Logger>

                  <Realm>

                  <Valve>

                  <Resource>

                  <ResourceParams>


6.     配置Connector元素


          <Connector>元素由org.apache.catalina.Connector接口定義.<Connector>元素代表與客戶程序實際交互的組件,它負責接收客戶的請求,以及向客戶返回響應結果.例如,     在樣例server.xml文件中配置了兩個<Connector>元素:


              prot="8009"

                                    enableLookups="false"     redirectPort"8443"     debug="0"

                                    protocol="AJP/1.3"/>   

   

   第一個<Connector>元素定義了一個HTTP     Connector,它通過8080端口接收HTTP請求;

          第二個<Connector>元素定義了一個JK     Connector,它通過8009端口接收由其他HTTP服務器(如Apache服務器)轉發過來的客戶請求.


          所有的<Connector>元素都具有一些共同的屬性,這些屬性如下:     <Connector       <Connector     port="8080"

                                    maxThreads="150"     minSpareThreads="25"     maxSpareThreads="75"

                                    enableLookups="false"     redirectPort="8443"     acceptCount="100"

                                    debug="0"     connectionTimeout="20000"  

                                    disableUploadTimeout="true"     />  

          <Connector>屬性含義(共同屬性):


--------------------------------------------------------------

          className               :指定實現org.apache.catalina.Connector     接口的類,默認值爲org.apache.catalina.core.StandardConnector.

          enableLookups       :如果設爲true,表示支持域名解析,可以把IP地址解析爲主機名.Web應用調用request.getRemostHost方法將返回客戶的主機名.該屬性默認值爲true.

          redirectPort         :指定轉發端口.如果當前端口只支持non-SSL請求,在需要安全通信的場合,將把客戶請求轉發到基於SSL的redirectPort的端口.


          HttpConnector的屬性描述如下:

--------------------------------------------------------------

          calssName               :指定實現org.apache.catalina.Connector接口的類,默認值爲org.apache.coyote.tomcat5.CoyoteConnector.

          enableLookups       :同上.

          redirectPort         :同上.

          prot                         :設定TCP/IP斷口號,默認爲8080.

          address                   :如果服務器有兩個以上IP地址,該屬性可以設定端口監聽的IP地址,默認情況下,端口會監聽服務器上所有IP地址.

          bufferSize             :設定由端口創建的輸入流的緩存大小,默認值爲2048byte.

          protocol                 :設定HTTP協議,默認值爲HTTP/1.1.

          maxThreads             :設定處理客戶請求的線程的最大數目,這個值也決定了服務器可以同時響應客戶請求的最大數目,默認值爲200.

          acceptCount           :設定在監聽端口隊列中的最大客戶請求數,默認值爲10.     如果隊列已滿,客戶請求將被拒絕.

          connectionTimeout     :定義建立客戶連接超時的時間,以毫秒爲單位.如果設置爲-1,表示不限制建立客戶連接的時間.


          JK     Connector     的屬性如下:

--------------------------------------------------------------

          className               :指定實現org.apache.catalina.Connector接口的類,默認值爲org.apache.coyote.tomact5.CoyoteCnnector.

          enableLookups       :同上.

          redirectPort         :同上.

          port                         :設定AJP端口號.

          protocol                 :必須設定爲AJP/1.3協議


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章