Tomcat-server.xml文件详解

Tomcat服务器
Tomcat服务器是由一系列可配置的组件构成,其核心组件是Catalina Servlet容器,它是所有其他Tomcat组件的顶层容器。Tomcat的组件可以在/conf/server.xml文件中进行配置,每个Tomcat组件在server.xml文件中对应一种配置元素。

Tomcat配置文件
代码以XML的形式展示了各种Tomcat组件之间的关系:

<?xml version='1.0' encoding='utf-8'?>

<!--Server 是顶级组件,代表一个 Tomcat 实例。可以包含一个或多个 Services ,其中每个 Service 都有自己的
 Engines 和 Connectors。-->
<!--server 在这个端口上监听一个 shutdown 命令。设置为 -1 表示禁用 shutdown 命令。-->
<Server port="8005" shutdown="SHUTDOWN">

  <!--Server 可以包含几个监听器。一个监听器监听指定事件,并对其作出响应。-->
  <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />  
  <Listener className="org.apache.catalina.core.JasperListener" />
  <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
  <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />

  <!--作用于全局资源,保证 JNDI 对资源的可达性,比如数据库。-->
  <!--"GlobalNamingResources"元素定义了 JNDI(Java 命名和目录接口)资源,其允许 Java 软件客户端通过
  名称搜寻和查找数据。-->
  <GlobalNamingResources>  

    <!--"Resource"元素定义了一个名称为 UserDatabase 的 JNDI,通过”conf/tomcat-users.xml“得到了一
    个用于用户授权的内存数据库。-->
    <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" />   

    <!--Demo配置 
        <Resource jdbcUrl="jdbc:oracle:thin:@localhost:1521:orcl" user="system" 
        password="system" name="ds/local_sxnx" auth="Container" 
        description="Oracle 10g Connection Pool" maxPoolSize="10" minPoolSize="2" 
        acquireIncrement="2" factory="org.apache.naming.factory.BeanFactory" 
        type="com.mchange.v2.c3p0.ComboPooledDataSource" driverClass="oracle.jdbc.driver.
        OracleDriver" />
    --> 
    <Resource jdbcUrl="jdbc:oracle:thin:@9.1.10.65:1521:orcl" user="inlc" password="inlc" 
        name="ds/local" auth="Container" 
        description="Oracle 10g Connection Pool" maxPoolSize="10" minPoolSize="2" 
        acquireIncrement="2" factory="org.apache.naming.factory.BeanFactory" 
        type="com.mchange.v2.c3p0.ComboPooledDataSource" driverClass="oracle.jdbc.driver.
        OracleDriver" />
  </GlobalNamingResources>

  <!--一个 Service 可以连接一个或多个 Connectors 到一个引擎。默认配置定义了一个名为“Catalina”的 Service ,
  连接了两个 Connectors:HTTP 和 AJP 到当前的引擎。-->
  <!--className:该实现使用的 Java 类名称。这个类必须实现 org.apache.catalina.Service 接口。如果没有指定
  类名称,将会使用标准实现。-->
  <!--name:Service 的显示名称,如果采用了标准的 Catalina 组件,将会包含日志信息。每个 Service 与某个特定的
   Server 关联的名称必须是唯一的。-->
  <Service name="Catalina">    

    <!--一个 Connector 关联到一个 TCP 端口,负责处理 Service 与客户端之间的交互。默认配置定义了两个
     Connectors。-->
    <!--注:HTTP/1.1:处理 HTTP 请求,使得 Tomcat 成为了一个 HTTP 服务器。客户端可以通过 Connector 
    向服务器发送 HTTP 请求,接收服务器端的 HTTP 响应信息。-->
    <Connector port="81" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />  

    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

    <!--容器:包含了 Engine、Host、Context和 Cluster 的 Tomcat 称为容器。最高级的是 Engine,最底层
    的是 Context。某些组件,比如 Realm 和 Valve,也可以放在容器中。-->
    <!--引擎是容器中最高级别的部分。可以包含一个或多个 Host。Tomcat 服务器可以配置为运行在多个主机名上,
    包括虚拟主机。-->
    <!--Catalina 引擎 从 HTTP connector 接收 HTTP 请求,并根据请求头部信息中主机名或 IP 地址重定向到
    正确的主机上。-->
   <Engine name="Catalina" defaultHost="localhost">

       <!-- Use the LockOutRealm to prevent attempts to guess user passwords
           via a brute-force attack -->
      <Realm className="org.apache.catalina.realm.LockOutRealm">      
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>    

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"

        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
</Server>

猜你喜欢

转载自blog.csdn.net/clearfairy/article/details/78476672
今日推荐