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 是整个 Tomcat 实例的顶层容器,代表一个 JVM 中运行的 Tomcat 服务器。一个 server.xml 只能有一个 Server 元素。
Service 是一组 Connector 和一个 Engine 的组合。多个 Service 可以共存于一个 Server,但通常只使用一个,默认名为 "Catalina"。
示例结构:Connector 负责处理客户端请求,支持 HTTP、HTTPS、AJP 等协议。它是外部访问 Web 应用的入口。
常见配置属性:
HTTP/1.1:默认 HTTP 协议,Tomcat 自动选择阻塞或非阻塞实现org.apache.coyote.http11.Http11NioProtocol:NIO 模式,支持高并发org.apache.coyote.http11.Http11AprProtocol:APR 模式,性能最优,需安装 APR 库HTTPS 配置示例:
需提前生成 keystore 并配置证书路径与密码。
Host 代表一个虚拟主机,对应一个域名或 IP,可部署多个 Web 应用(WebApp)。
关键属性:
多域名绑定示例:
example.com
通过 DNS 或 hosts 文件将域名指向服务器 IP 即可实现多站点部署。
Context 代表单个 Web 应用,可配置在 Host 内部或独立为 XML 文件(推荐方式)。
直接在 server.xml 中配置 Context 存在热部署问题,不推荐。建议使用 $CATALINA_HOME/conf/[enginename]/[hostname]/appname.xml 方式。
常用属性:
例如:创建 conf/Catalina/localhost/myapp.xml 文件内容:
基本上就这些核心配置。理解并合理设置 Connector 和 Host 能显著提升 Tomcat 的稳定性与性能。修改后记得重启服务使配置生效。不复杂但容易忽略细节。