server.xml是Apache Tomcat服务器自带的全局配置文件,位于Tomcat安装目录的conf文件夹下,整个Tomcat的启动参数、服务监听端口、请求处理规则、虚拟主机映射等核心运行逻辑都定义在这个文件中,是调整Tomcat运行行为最主要的入口文件。

server.xml的核心结构
server.xml的整体结构是一个嵌套的XML层级,最外层是<Server>根元素,内部依次包含<Service>、<Connector>、<Engine>、<Host>等核心组件,每个组件对应Tomcat运行的一个功能模块。
核心组件说明
- Server:代表整个Tomcat服务器实例,是配置文件的最顶层元素,一个server.xml中只能有一个
<Server>元素。 - Service:将一个或多个Connector组件和一个Engine组件绑定在一起,负责处理Connector接收到的所有请求,一个Server可以包含多个Service。
- Connector:负责监听指定的网络端口,接收客户端的请求并转发给Engine处理,常见的配置有HTTP Connector和AJP Connector。
- Engine:请求处理的核心引擎,负责处理所有Connector转发的请求,并且把处理结果返回给Connector,一个Service只能有一个Engine。
- Host:虚拟主机配置,对应一个网络域名,一个Engine可以包含多个Host,用来部署不同的Web应用。
- Context:单个Web应用的配置,指定应用的部署路径和访问路径,通常可以单独放在context.xml中,也可以内嵌在Host标签内。
默认server.xml的基础配置示例
Tomcat默认的server.xml内容结构如下,我们可以基于这个默认配置进行修改:
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<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>
<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 "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
常见配置场景与修改方法
修改Tomcat默认访问端口
默认情况下Tomcat的HTTP服务监听8080端口,如果需要修改为其他端口比如9090,只需要修改HTTP Connector的port属性即可:
<!-- 将原来的port="8080"修改为port="9090" -->
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
修改完成后重启Tomcat,就可以通过http://ipipp.com:9090访问服务了。
配置虚拟主机
如果需要让Tomcat同时处理多个域名的请求,可以在Engine标签内添加多个Host配置。比如新增一个域名为test.ipipp.com的虚拟主机,部署路径为/opt/tomcat/testapps:
<Engine name="Catalina" defaultHost="localhost">
<!-- 原有默认localhost主机配置 -->
<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 "%r" %s %b" />
</Host>
<!-- 新增的虚拟主机配置 -->
<Host name="test.ipipp.com" appBase="/opt/tomcat/testapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="test_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
配置HTTPS访问
如果需要开启HTTPS服务,需要先准备SSL证书,然后添加HTTPS类型的Connector配置。假设证书文件放在conf目录下,配置如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/keystore.jks"
certificateKeystorePassword="keystore密码"
type="RSA" />
</SSLHostConfig>
</Connector>
配置注意事项
- 修改server.xml之前建议先备份原文件,避免修改错误导致Tomcat无法启动。
- 修改完成后需要重启Tomcat才能生效,修改过程中要保证XML语法正确,标签必须正确闭合,属性值用双引号包裹。
- 如果配置后出现启动失败,可以查看Tomcat的logs目录下的catalina.out日志文件,根据错误提示排查问题。
- 对于Context配置,建议尽量单独放在conf/Catalina/对应主机名目录下,避免直接修改server.xml导致配置混乱。
server.xmlTomcat服务器配置ConnectorEngine修改时间:2026-07-10 11:24:31