server.xml 配置文件介绍

Tomcat 的 server.xml 配置文件被格式化为无模式 XML,元素和属性区分大小写。支持 Apache Ant 风格的变量替换;可以使用语法 ${propname} 在配置文件中使用名为 propname 的系统属性。所有系统属性都可用,包括使用 -D 语法设置的属性、由 JVM 自动提供的属性以及在 $CATALINA_BASE/conf/catalina.properties 文件中配置的属性。

server.xml 的配置元素分为以下几个主要类别:

顶级元素(Top Level Elements)

<Server> 元素是整个 server.xml 配置文件的根元素,而 <Service> 元素则代表一组与引擎关联的连接器。配置如下:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  ...
  <Service name="Catalina">
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/>
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
      ...
      </Realm>
      <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
        ...
      </Host>
    </Engine>
  </Service>
</Server>

连接器(Connectors)

表示向特定服务发送请求(并接收来自特定服务的响应)的外部客户端之间的接口。配置如下:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  ...
  <Service name="Catalina">
    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="150" minSpareThreads="4"/>
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    ...
  </Service>
</Server>

容器(Containers)

表示其功能是处理传入请求的组件,并创建相应的响应。Engine 处理对 Service 的所有请求,Host 处理对特定虚拟主机的所有请求,Context 处理对特定 Web 应用程序的所有请求。配置如下:

<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
  ...
  <Service name="Catalina">
    ...
    <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
    ...
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">...</Realm>
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
            ...
        <Valve .../>
      </Host>
    </Engine>
  </Service>
</Server>

嵌套组件(Nested Components)

表示可以嵌套在 Container 元素内的元素。有些元素可以嵌套在任何 Container 中,而有些元素只能嵌套在 Context 中。例如:

<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" />
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
        resourceName="UserDatabase"/>

等元素。在后续章节中,将逐一介绍各个元素以及它的属性的用法。

说说我的看法
全部评论(
没有评论
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号