Tomcat server.xml配置文件解析

Tomcat conf/server.xml 配置文件解析:

  1. 顶级元素:Server、Service:
    <Server>是整个配置文件的根元素,而<Service>表示一组与引擎关联的连接器。
  2. Executors:执行器表示可以在Tomcat中的组件之间共享的线程池。历史上,每个创建的连接器都有一个线程池,但这允许您在(主要)连接器和其他组件之间共享一个线程池,当这些组件被配置为支持executor时执行器必须实现org.apache.catalina。Executor接口。executor是服务元素的嵌套元素。为了让连接器接收到它,Executor元素必须出现在server.xml中的Connector元素之前。
  3. Connectors:HTTP/1.1、HTTP/2、AJP: 
    HTTP/1.1:HTTP连接器元素表示支持HTTP/1.1协议的连接器组件。除了能够执行servlet和JSP页面之外,它还使Catalina能够作为独立的web服务器运行。此组件的特定实例侦听服务器上特定TCP端口号上的连接。可以将一个或多个这样的连接器配置为单个服务的一部分,每个连接器都转发到关联的引擎来执行请求处理并创建响应。

    HTTP/2:HTTP升级协议元素表示支持HTTP/2协议的升级协议组件。此组件的实例必须与现有HTTP/1.1连接器关联。
    HTTP/2连接器使用非阻塞I/O,只在需要读写数据时使用线程池中的容器线程。但是,由于Servlet API从根本上是阻塞的,所以每个HTTP/2流在流的持续时间内都需要一个专用的容器线程。

    AJP:AJP连接器元素表示通过AJP协议与web连接器通信的连接器组件。这用于希望将Tomcat无形地集成到现有(或新的)Apache安装中,并且希望Apache处理web应用程序中包含的静态内容和/或利用Apache的SSL处理的情况。
    当与引擎的jvmRoute属性一起使用时,此连接器支持负载平衡。
  4. Containers:Context、Engine、Host、Cluster:

    Context:上下文元素表示在特定虚拟主机中运行的web应用程序。每个web应用程序都基于一个web应用程序存档(WAR)文件,或者一个包含相应解压缩内容的对应目录,如Servlet规范(版本2.2或更高版本)所述。有关web应用程序存档的更多信息,您可以下载Servlet规范,并查看Tomcat应用程序开发人员指南。用于处理每个HTTP请求的web应用程序由Catalina根据每个已定义上下文的上下文路径匹配请求URI的最长前缀来选择。一旦选中,该上下文将根据web应用程序部署定义的servlet映射选择适当的servlet来处理传入的请求。您可以定义任意多的上下文元素。每个这样的上下文必须在虚拟主机中具有唯一的上下文名称。上下文路径不需要是惟一的(参见下面的并行部署)。此外,上下文必须具有等于零长度字符串的上下文路径。此上下文成为此虚拟主机的默认web应用程序,用于处理与任何其他上下文的上下文路径不匹配的所有请求。

    Engine:Engine元素表示与特定Catalina服务关联的整个请求处理机制。它接收并处理来自一个或多个连接器的所有请求,并将完成的响应返回给连接器,以便最终将其传输回客户机。
    必须在服务元素中嵌套一个引擎元素,并遵循与此服务关联的所有对应连接器元素。

    Host:Host元素表示一个虚拟主机,它是一个服务器(如“www.mycompany.com”)的网络名称与运行Tomcat的特定服务器的关联。要使客户机能够使用其网络名称连接到Tomcat服务器,必须在管理您所属的Internet域的域名服务(DNS)服务器中注册此名称。在许多情况下,系统管理员希望将多个网络名称(如www.mycompany.com和company.com)与相同的虚拟主机和应用程序关联起来。这可以使用下面讨论的主机名别名特性来实现。一个或多个主机元素嵌套在引擎元素中。在宿主元素中,您可以为与此虚拟主机关联的web应用程序嵌套上下文元素。与每个引擎关联的主机中,必须有一个与该引擎的defaultHost属性匹配的名称。客户端通常使用主机名来标识他们希望连接到的服务器。此主机名也包含在HTTP请求头中。Tomcat从HTTP头文件中提取主机名,并寻找具有匹配名称的主机。如果没有找到匹配,则将请求路由到默认的host。

    Cluster:tomcat集群实现提供会话复制、上下文属性复制和集群范围的WAR文件部署。虽然集群配置相当复杂,但是默认配置对大多数人来说都是开箱即用的。
    Tomcat集群实现是非常可扩展的,因此我们公开了大量的选项,使配置看起来非常多,但是不要失去信心,相反,您可以对正在发生的事情进行极大的控制。
     
  5. 嵌套组件:CookieProcessor、CredentialHandler、Global Resources、JarScanner、JarScanFilter、Listeners、Loader、Manager、Realm、Resources、SessionIdGenerator、Valve:
  6. 具体的每个嵌套组件的含义及配置请查阅ApacheTocmat官网文档。
     

  7. 下面附conf/server.xml配置文件(去除注释):

  8. <?xml version="1.0" encoding="UTF-8"?>

    <Server port="8005" shutdown="SHUTDOWN">
      <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
      <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
      <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
      <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
      <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>
      <Service name="Catalina">
        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" />
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
        <Engine name="Catalina" defaultHost="localhost">
          <Realm className="org.apache.catalina.realm.LockOutRealm">
           
            <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase"/>
          </Realm>

  9.        <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>
     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值