wiki:waue/2010/0524

Version 1 (modified by waue, 15 years ago) (diff)

--

tomcat 6.x 佈署方法

http://www.cc-space.com/?p=103

目錄名 簡介
bin 存放啟動和關閉 tomcat 腳本
conf 包含不同的配置文件 ,server .xml (Tomcat 的主要配置文件) 和 web.xml
work 存放 jsp 編譯後產生的 class 文件
webapp 存放應用程序示例,以後你要部署的應用程序也要放到此目錄
logs 存放日誌文件
lib 這三個目錄主要存放 tomcat 所需的 jar 文件
  • conf/service.xml
     <!--
     port: 指定一個端口,這個端口負責監聽關閉tomcat的請求
     shutdown: 指定向端口發送的命令字符串
     --> 
    <Server port="8005" shutdown="SHUTDOWN">
     
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <Listener className="org.apache.catalina.core.JasperListener" />
      <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
     
      <!--
      GlobalNamingResources: 服務器的全局JNDI資源,可以有子標籤<Resource></Resource>
      --> 
      <GlobalNamingResources>
        <Resource name="UserDatabase" auth="Container"
                  type="org.apache.catalina.UserDatabase"
                  description="User database that can be updated and saved"
                  factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
                  pathname="conf/tomcat-users.xml" />
      </GlobalNamingResources>
     
      <!--
      name: 指定service的名字
      -->
      <Service name="Catalina">
     
        <!--
      Executor: 線程池,一個或多個Connector可以共享此線程池
        name: 線程池名稱,名稱必須唯一
        namePrefix: 線程的名字前綴,用來標記線程名字的,這樣每個線程就用這個前綴加上線程編號了,比如catalina-exec-1 、catalina-exec-2
      maxThreads: 允許的最大線程池裡的線程數量,默認是200,大的並發應該設置的高一些,反正只是限制而已,不佔用資源
        minSpareThreads: 最小的保持活躍的線程數量,默認是25.這個要根據負載情況自行調整了。太小了就影響反應速度,太大了白白佔用資源
      maxIdleTime: 最小的保持活躍的線程數量,默認是25.這個要根據負載情況自行調整了。太小了就影響反應速度,太大了白白佔用資源
        threadPriority: 線程的等級。默認是Thread.NORM_PRIORITY
        -->
        <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" 
            maxThreads="150" minSpareThreads="4"/>
     
     
        <!--
      Connector: 表示客戶端和service之間的連接
      port: 指定服務器端要創建的端口號,並在這個斷口監聽來自客戶端的請求
      minProcessors: 服務器啟動時創建的處理請求的線程數
      maxProcessors: 最大可以創建的處理請求的線程數
      enableLookups: 如果為true,則可以通過調用request.getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip地址
      redirectPort: 指定服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號
      acceptCount: 指定當所有可以使用的處理請求的線程數都被使用時,可以放到處理隊列中的請求數,超過這個數的請求將不予處理
      connectionTimeout: 指定超時的時間數(以毫秒為單位)
        -->
        <Connector port="8400" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="9400" />
     
        <Connector executor="tomcatThreadPool"
                   port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />
     
        <Connector port="9400" protocol="HTTP/1.1" SSLEnabled="true"
                   maxThreads="150" scheme="https" secure="true"
                   keystoreFile="conf/localhost.keystore" keystorePass="changeit"
                   clientAuth="false" sslProtocol="TLS" />
     
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
     
      <!--
      Engine: 表示指定service中的請求處理機,接收和處理來自Connector的請求
      name:
      defaultHost: 指定缺省的處理請求的主機名,它至少與其中的一個host元素的name屬性值是一樣的
      jvmRoute:
        -->
        <Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">         
        <Engine name="Catalina" defaultHost="localhost">
     
          <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
     
          <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
     
          <!--
        Realm: 表示存放用戶名,密碼及role的數據庫
        className: 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm接口
          -->
          <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                 resourceName="UserDatabase"/>
     
          <!--
        Host: 表示一個虛擬主機、並且可以包含Context子節點配置虛擬目錄
        name: 指定主機名
        appBase: 應用程序基本目錄,即存放應用程序的目錄
        unpackWARs: 如果為true,則tomcat會自動將WAR文件解壓,否則不解壓,直接從WAR文件中運行應用程序
        autoDeploy: 自動部署
        xmlValidation: 是否驗證xml
        xmlNamespaceAware:
          -->
          <Host name="localhost"  appBase="webapps"
                unpackWARs="true" autoDeploy="true"
                xmlValidation="false" xmlNamespaceAware="false">
     
            <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
     
            <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
                   prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
     
        <!--
          Context: host子節點配置虛擬目錄
          path: 虛擬目錄名稱
        docBase: 物理路徑
        Debug: Debug模式
        Reload: True 重新加載,修改後自動加載
            -->
        <Context path="" docBase="\ptp" debug="0" reloadable="true" />
          </Host>
        </Engine>
      </Service>
    </Server>
    

http://tomcat.apache.org/tomcat-6.0-doc/realm-howto.html