CentOS 环境下 Tomcat 的版本选择建议
一 选择原则
- 优先匹配 CentOS 版本 与 Java LTS 版本:新部署建议 CentOS Stream 8+ 搭配 OpenJDK 11/17(LTS);CentOS 7.x 仍可使用但已进入维护末期,不建议新业务;CentOS 8 已停止维护,不建议新部署。
- 按 Java 兼容性 选 Tomcat:
- Tomcat 9.x:需 Java 8+(生产推荐 Java 11+)。
- Tomcat 10.1.x:面向 Jakarta EE 9+(包名从 javax 迁到 jakarta),需应用做相应迁移。
- 按 应用需求 选:若需 Servlet 4.0+ / JSP 2.3+ 等特性,选择 Tomcat 9+;若需 Jakarta EE 9+ 命名空间,选择 Tomcat 10.1+。
- 兼顾 生命周期与安全更新:避免已 EOL 或即将 EOL 的组合,优先选择仍在维护的 Tomcat 9/10.1 与 JDK 11/17。
二 推荐组合一览
| 场景 |
操作系统 |
Java |
Tomcat |
说明 |
| 新部署通用业务 |
CentOS Stream 8/9 |
OpenJDK 11/17(LTS) |
Tomcat 9.x |
稳定、生态成熟,满足大多数 Java Web 应用 |
| 需 Jakarta EE 9+ |
CentOS Stream 8/9 |
OpenJDK 11/17(LTS) |
Tomcat 10.1.x |
包名迁移至 jakarta,需应用适配 |
| 存量业务延续 |
CentOS 7.x |
OpenJDK 8/11 |
Tomcat 8.5.x |
维持稳定,规划升级路径 |
| 低内存实例 |
CentOS Stream 8/9 |
OpenJDK 11 |
Tomcat 9.0.x |
实测内存占用相对更低,适合 ≤2GB 实例 |
说明:上表的组合与建议来自主流云厂商实践与版本兼容要求,兼顾稳定性、功能与资源占用。
三 快速决策步骤
- 确认 CentOS 版本:cat /etc/centos-release;若需长期支持与安全更新,优先 CentOS Stream 8/9。
- 确认 应用依赖:是否依赖 javax.servlet 4.0+ / JSP 2.3+(选 Tomcat 9),或已迁移到 jakarta(选 Tomcat 10.1)。
- 选择 JDK:优先 OpenJDK 11/17(LTS);在 Tomcat 9 上可用 Java 8+,在 Tomcat 10.1 上建议 Java 11+。
- 校验与下载:从 Apache 官网获取二进制包,使用 sha512sum 校验完整性,避免第三方修改版。
四 部署与运维要点
- 以 非 root 用户运行:创建 tomcat 用户与组,设置目录权限(如 750/640),降低安全风险。
- 配置 JVM 内存:例如 -Xms512m -Xmx1024m(≤2GB 内存实例),或 -Xms1g -Xmx2g(4GB 内存实例);堆不超过物理内存的 50%。
- 服务化管理:使用 systemd 托管 Tomcat,设置 开机自启 与 自动重启。
- 安全加固:保护 manager/ host-manager 管理接口(强密码、IP 白名单),配置 SSL/TLS(8443),删除或禁用默认首页与示例应用。