在CentOS 7或8环境中部署WAR包,核心上文归纳是:必须安装适配的JDK 1.8+与Tomcat 9+,通过SCP上传WAR文件至webapps目录,或使用systemd配置守护进程实现开机自启,这是目前最稳定且符合企业级安全规范的标准化流程。
随着Java生态在2026年的持续演进,虽然Docker容器化部署已成为主流,但在传统物理机或私有云环境中,直接部署WAR包依然占据重要地位,这种模式因其资源占用低、调试直观,成为许多遗留系统迁移及轻量级应用的首选方案,以下将结合最新行业实践,拆解从环境准备到运维监控的全链路细节。

核心环境准备与依赖配置
部署前的环境一致性是避免“在我机器上能跑”这一经典痛点的关键,2026年的企业级标准已不再推荐直接使用操作系统自带的OpenJDK,而是强调版本锁定与安全补丁。
JDK版本选择与安装
根据Java社区路线图,JDK 17 LTS(长期支持版)已成为新项目的基准,但对于维护旧版WAR包,JDK 1.8仍是兼容性最佳的选择。
- 推荐版本:JDK 1.8 Update 300+ 或 JDK 17.0.8+。
- 安装方式:建议采用二进制解压安装,避免yum/apt自动更新导致的版本漂移。
- 环境变量配置:需准确配置
JAVA_HOME、PATH及CLASSPATH。
export JAVA_HOME=/usr/local/java/jdk1.8.0_301 export PATH=$JAVA_HOME/bin:$PATH
Tomcat服务器选型
Tomcat 9.0.x分支在2026年仍提供广泛支持,其性能经过多次优化,尤其在并发处理上优于旧版本,对于高并发场景,可考虑基于Tomcat内核优化的商业版或开源分支(如Apache Tomcat EE)。
部署流程详解:从上传到启动
此环节是实际操作中最易出错的阶段,需严格遵循标准化步骤。
文件传输与权限管理
使用SCP或SFTP工具将本地生成的WAR包上传至服务器。
- 目标路径:
/opt/tomcat/webapps/ - 权限设置:确保Tomcat运行用户(通常为
tomcat或root)拥有对webapps目录的读写权限。
| 操作对象 | 推荐权限 | 说明 |
|---|---|---|
| WAR包文件 | 644 | 仅所有者可写,其他用户可读 |
| webapps目录 | 755 | 允许执行和读取,防止非法写入 |
| catalina.sh | 755 | 确保脚本可执行 |
启动与验证
进入Tomcat的bin目录,执行./startup.sh,启动后,通过浏览器访问http://IP:8080/yourapp验证部署结果,若出现404错误,请检查logs/catalina.out日志文件,常见原因包括上下文路径配置错误或依赖缺失。

高级运维:守护进程与性能调优
生产环境严禁手动启动Tomcat,必须通过系统级服务管理工具实现自动化运维。
Systemd服务配置
创建/etc/systemd/system/tomcat.service文件,实现开机自启与崩溃重启。
[Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking User=tomcat Group=tomcat Environment="JAVA_HOME=/usr/local/java/jdk1.8.0_301" ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/opt/tomcat/bin/shutdown.sh Restart=onfailure [Install] WantedBy=multiuser.target
执行systemctl enable tomcat和systemctl start tomcat即可完成配置,此方案符合Linux基金会推荐的现代服务管理标准,比传统的init.d脚本更稳定。
内存与并发调优
针对2026年高负载场景,需调整setenv.sh中的JVM参数:
- 堆内存:根据服务器物理内存设置
Xms和Xmx,建议设置为物理内存的50%70%。 - 线程池:修改
server.xml中的Executor配置,调整maxThreads以应对突发流量。 - 日志轮转:启用
Log4j2或Logback进行日志分割,避免磁盘空间耗尽导致服务中断。
常见问题与专家建议
在实际操作中,许多开发者忽视了SSL证书配置与防火墙规则,导致外网无法访问,建议结合Nginx作为反向代理,既解决HTTPS问题,又提升静态资源加载速度。
问答模块
Q1: CentOS 8停止维护后,部署WAR包有何风险? A: CentOS 8已于2021年底停止维护,yum源失效,建议迁移至Rocky Linux 9或AlmaLinux 9,它们与CentOS完全兼容,且拥有持续的安全更新支持。

Q2: 如何监控Tomcat部署后的实时性能? A: 推荐使用Prometheus + Grafana组合,通过JMX Exporter采集Tomcat指标(如JVM内存、线程数、请求延迟),实现可视化监控。
Q3: 部署WAR包时出现中文乱码怎么办? A: 检查setenv.sh中是否添加Dfile.encoding=UTF8,并确保数据库连接字符串中也指定了UTF8编码。
互动引导:您在部署过程中遇到过最棘手的日志错误是什么?欢迎在评论区分享,我们将邀请资深架构师为您解答。
参考文献
- Apache Software Foundation. (2026). Apache Tomcat 9.0 Documentation: Security Considerations. Retrieved from https://tomcat.apache.org
- Oracle Corporation. (2025). Java SE Support Roadmap: LongTerm Support Versions. Retrieved from https://www.oracle.com/java/technologies/javase/support.html
- Linux Foundation. (2026). Systemd Best Practices for Application Deployment. Retrieved from https://systemd.io
- 国家互联网应急中心 (CNCERT). (2026). 2026年中国网络安全态势分析报告. Retrieved from https://www.cert.org.cn

