Server是Tomcat顶层容器,Service包含Connector和Engine,Connector配置协议、端口、线程等参数以优化性能与安全,支持HTTP/HTTPS/AJP;Host定义虚拟主机及appBase路径实现多站点部署;Context代表Web应用,推荐独立XML文件配置以避免热部署问题,合理设置可提升稳定性。

Tomcat 的 server.xml 是其核心配置文件,位于 $CATALINA_HOME/conf/server.xml。它定义了 Tomcat 的整体架构,包括服务(Service)、连接器(Connector)、引擎(Engine)、主机(Host)和上下文(Context)等组件。合理配置这些组件对性能、安全性和部署灵活性至关重要。
Server 和 Service 组件概述
Server 是整个 Tomcat 实例的顶层容器,代表一个 JVM 中运行的 Tomcat 服务器。一个 server.xml 只能有一个 Server 元素。
Service 是一组 Connector 和一个 Engine 的组合。多个 Service 可以共存于一个 Server,但通常只使用一个,默认名为 "Catalina"。
示例结构:Connector 配置详解
Connector 负责处理客户端请求,支持 HTTP、HTTPS、AJP 等协议。它是外部访问 Web 应用的入口。
常见配置属性:
- port:监听端口号,如 8080(HTTP)、8443(HTTPS)
-
protocol:协议类型,常用值:
-
HTTP/1.1:默认 HTTP 协议,Tomcat 自动选择阻塞或非阻塞实现 -
org.apache.coyote.http11.Http11NioProtocol:NIO 模式,支持高并发 -
org.apache.coyote.http11.Http11AprProtocol:APR 模式,性能最优,需安装 APR 库
-
- connectionTimeout:连接超时时间(毫秒),默认 20000
- maxThreads:最大线程数,默认 200,控制并发处理能力
- minSpareThreads:最小空闲线程数,保障响应速度
- enableLookups:是否启用 DNS 反向解析,设为 false 提升性能
- redirectPort:当需要 HTTPS 时重定向的端口(如 8443)
- compression:启用 GZIP 压缩,可选 "on"、"off"、"force",建议对文本类资源开启
- compressableMimeType:指定压缩的 MIME 类型,如 text/html,text/xml,text/plain
HTTPS 配置示例:
需提前生成 keystore 并配置证书路径与密码。
Host 组件配置说明
Host 代表一个虚拟主机,对应一个域名或 IP,可部署多个 Web 应用(WebApp)。
关键属性:
- name:主机名,如 localhost、www.example.com
- appBase:应用基础目录,相对或绝对路径,如 webapps、/data/apps
- unpackWARs:是否自动解压 WAR 包,true 表示解压后运行
- autoDeploy:是否自动部署新应用或更新,开发环境可开启,生产建议关闭
- xmlValidation:是否验证 web.xml,影响启动速度
- xmlNamespaceAware:是否启用命名空间感知解析
多域名绑定示例:
example.com
通过 DNS 或 hosts 文件将域名指向服务器 IP 即可实现多站点部署。
Context 配置注意事项
Context 代表单个 Web 应用,可配置在 Host 内部或独立为 XML 文件(推荐方式)。
直接在 server.xml 中配置 Context 存在热部署问题,不推荐。建议使用 $CATALINA_HOME/conf/[enginename]/[hostname]/appname.xml 方式。
常用属性:
- docBase:应用根目录路径
- path:URL 访问路径,如 "/myapp"
- reloadable:是否监控类变化并自动重载,开发可用,生产禁用
- crossContext:是否允许跨应用请求(ServletContext.getRequestDispatcher)
例如:创建 conf/Catalina/localhost/myapp.xml 文件内容:
基本上就这些核心配置。理解并合理设置 Connector 和 Host 能显著提升 Tomcat 的稳定性与性能。修改后记得重启服务使配置生效。不复杂但容易忽略细节。










