温馨提示×

Ubuntu Tomcat升级步骤详解

小樊
34
2025-12-19 22:24:08
栏目: 智能运维

Ubuntu 下 Tomcat 升级步骤详解

一 升级前准备

  • 确认当前版本与运行方式
    查看版本:在 $CATALINA_HOME/bin 执行 ./version.sh;如通过服务运行,使用 systemctl status tomcatservice tomcat status 确认服务名与运行状态。
  • 核对 Java 与版本兼容性
    Ubuntu 20.04/22.04 常见 OpenJDK 11/17/21。Tomcat 与 JDK 存在对应关系:例如 Tomcat 10.1.x 不再支持 JDK 8,若仍在 JDK 8,应优先选择 Tomcat 9.0.x;升级前务必确认应用与 JDK 的兼容性。
  • 规划目录与服务账户
    建议将 Tomcat 安装在 /opt/tomcat/usr/local/apache-tomcat,运行用户使用专用的 tomcat 系统账号,便于权限与审计管理。
  • 备份关键数据
    完整备份 $CATALINA_HOME(或使用 tar 归档),重点包括 conf/webapps/logs/,以及自定义的 setenv.sh/bin/setenv.bat、证书与外部依赖配置。

二 标准升级流程

  • 下载并校验新版本
    从官网下载对应系列的 Core 版本 .tar.gz,使用 sha512sum 校验完整性,避免传输损坏。
  • 停止旧实例
    优雅停止:$CATALINA_HOME/bin/shutdown.sh;如为服务:systemctl stop tomcat。必要时检查并清理残留进程。
  • 备份与重命名旧目录
    示例:
    • 备份:tar -zcvf /opt/backup/tomcat-$(date +%F).tar.gz -C /opt/tomcat .
    • 重命名:mv /opt/tomcat /opt/tomcat-old
  • 部署新版本
    解压到目标路径(保持与旧版本一致便于无缝切换):
    • 示例:tar xzvf apache-tomcat-9.0.93.tar.gz -C /opt
    • 若希望目录即为 /opt/tomcat,可使用 –strip-components=1 直接解压到该目录。
  • 迁移配置与业务
    仅迁移必要内容:
    • 配置:conf/(建议先备份新版的 server.xml 再覆盖)
    • 应用:webapps/(优先复制你的业务 WAR/目录,避免覆盖新版的默认应用)
    • 可选:logs/(便于问题追溯)
    • 安全加固:删除或限制访问 docs、examples、manager、host-manager 等默认应用。
  • 权限与服务单元
    设置目录与脚本权限:chown -R tomcat:tomcat /opt/tomcat;chmod +x /opt/tomcat/bin/*.sh。
    如使用 systemd,确保 /etc/systemd/system/tomcat.service 中的 JAVA_HOME、CATALINA_HOME、CATALINA_BASE、User/Group 等指向新路径。
  • 启动与验证
    启动:systemctl start tomcat 或 $CATALINA_HOME/bin/startup.sh;查看日志:tail -f logs/catalina.out;访问应用与 /manager/status 校验运行状态与线程、内存等关键指标。

三 版本选择与兼容性要点

  • 版本矩阵建议
    • JDK 8:选择 Tomcat 9.0.x(Tomcat 10.1+ 不支持 JDK 8)
    • JDK 11/17/21:选择 Tomcat 10.1.xTomcat 9.0.x(优先 10.1.x 获取安全修复与新特性)
  • 系列内与跨系列升级
    • 同系列小版本升级(如 9.0.x → 9.0.y)通常可直接沿用 conf/webapps/
    • 跨系列升级(如 9 → 10)需评估 JDK 要求、Servlet/JSP 规范变更、废弃/移除特性 与应用的兼容性,先在测试环境验证再上线。
  • 常见兼容性报错
    出现 “could not create the Java virtual machine” 或启动异常,优先检查 JDK 版本是否满足目标 Tomcat 的要求,再排查内存参数与环境变量。

四 回滚与常见问题处理

  • 快速回滚
    停止新实例 → 删除新目录 → 恢复原目录(如 mv /opt/tomcat-old /opt/tomcat)→ 启动旧实例;回滚后核对 conf/ 与应用版本是否被意外覆盖。
  • 常见问题速查
    • 端口占用:检查 server.xmlConnector port,以及 netstat -tulpen | grep 8080;必要时调整端口或停用占用进程。
    • 启动失败:优先查看 catalina.outlocalhost..log,定位类加载、JDBC 驱动、内存参数等问题。
    • 权限问题:确保 tomcat 用户对 $CATALINA_HOME 及子目录具备 读/执行 权限,日志目录可写。
    • 管理端访问:如需使用 /manager/host-manager,请在 tomcat-users.xml 配置角色与强密码,并在对应 META-INF/context.xml 中限制 RemoteAddrValve 的访问网段。

0