温馨提示×

CentOS Tomcat如何更新升级

小樊
37
2025-12-27 07:39:28
栏目: 智能运维

CentOS 上 Tomcat 更新升级指南

一 升级前准备

  • 检查 JDK 兼容性Tomcat 9 需 Java 8+Tomcat 10 需 Java 11+;用命令 java -version 确认版本,必要时安装或切换 OpenJDK 11
  • 备份关键数据:停止服务后备份安装目录(如 /usr/share/tomcat/opt/tomcat)、配置目录(如 /etc/tomcat$CATALINA_HOME/conf)、webappslogs。示例:
    sudo systemctl stop tomcat
    sudo cp -r /usr/share/tomcat /usr/share/tomcat-backup-$(date +%Y%m%d)
    sudo cp -r /usr/share/tomcat/conf /etc/tomcat-backup-$(date +%Y%m%d)
  • 规划停机窗口与回滚方案:升级期间服务不可用,准备好将 $CATALINA_HOME 指回备份目录快速恢复。
  • 防火墙与端口:如启用 firewalld,开放 8080(或自定义 HTTP 端口)与 8443(若启用 HTTPS):
    sudo firewall-cmd --permanent --add-port=8080/tcp && sudo firewall-cmd --reload
  • 运行身份与权限:建议使用专用 tomcat 用户运行,避免以 root 启动。

二 升级方式

  • 方式一 手动替换(通用、可控性高,推荐)
    1. 下载新版本二进制包(示例为 Tomcat 9.0.56):
      wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
    2. 解压到目标目录(如 /usr/share/):
      sudo tar -xvzf apache-tomcat-9.0.56.tar.gz -C /usr/share/
    3. 替换目录(保留旧版本以便回滚):
      sudo mv /usr/share/tomcat /usr/share/tomcat-old
      sudo mv /usr/share/apache-tomcat-9.0.56 /usr/share/tomcat
    4. 迁移配置与应用(按需覆盖,避免覆盖新版本默认配置):
      sudo cp -r /usr/share/tomcat-old/conf/* /usr/share/tomcat/conf/
      sudo cp -r /usr/share/tomcat-old/webapps/* /usr/share/tomcat/webapps/
    5. 更新环境变量(如使用):编辑 /etc/profile.d/tomcat.sh
      echo "export CATALINA_HOME=/usr/share/tomcat" | sudo tee /etc/profile.d/tomcat.sh
      echo "export PATH=\$PATH:\$CATALINA_HOME/bin" | sudo tee -a /etc/profile.d/tomcat.sh
      source /etc/profile.d/tomcat.sh
    6. 若使用 systemd,更新服务文件 /etc/systemd/system/tomcat.service 中的 CATALINA_HOMEExecStart/ExecStop 等,然后:
      sudo systemctl daemon-reload && sudo systemctl start tomcat
    7. 验证:
      sudo systemctl status tomcat
      curl http://localhost:8080
    8. 确认无误后清理备份:
      sudo rm -rf /usr/share/tomcat-old apache-tomcat-9.0.56.tar.gz
  • 方式二 YUM 仓库升级(适用于 CentOS 7,需已配置包含 Tomcat 的仓库)
    1. 安装/启用仓库(示例启用 Remi Tomcat 9 仓库):
      sudo yum install epel-release -y
      sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
      sudo yum-config-manager --enable remi-tomcat9
    2. 执行升级:
      sudo yum update tomcat
    3. 重启并验证:
      sudo systemctl restart tomcat && sudo systemctl status tomcat
      说明:仓库提供的打包方式可能与手动安装目录结构不同,升级前确认 JAVA_HOME/CATALINA_HOME 与服务单元配置。

三 升级后验证与回滚

  • 版本确认:
    /usr/share/tomcat/bin/version.sh 或查看 $CATALINA_HOME/bin/versionLogger.sh 输出。
  • 日志与功能:
    tail -f /usr/share/tomcat/logs/catalina.out 检查是否有 ERROR/SEVERE;逐一对业务 URL 做冒烟测试。
  • 回滚方案(升级异常时):
    sudo systemctl stop tomcat
    sudo mv /usr/share/tomcat /usr/share/tomcat-failed
    sudo mv /usr/share/tomcat-old /usr/share/tomcat
    sudo systemctl start tomcat

四 常见问题与维护建议

  • 端口与防火墙:默认 8080/8443/8005/8009;如修改端口,同步更新 firewalld 规则并重启服务。
  • 安全加固:删除 webapps/docs、examples、host-manager、manager 等示例应用;在 server.xml Connector 添加 server="MyCustomServer/1.0" 隐藏版本;为管理接口配置强密码并限制 IP 访问;配置 HTTPS(证书路径、密码与权限)。
  • JVM 与性能:在 bin/setenv.sh 中设置堆与元空间,如:
    export CATALINA_OPTS="-Xms512M -Xmx1024M -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m";按需调整 server.xml ConnectormaxThreads、acceptCount 等。
  • 运行身份与目录权限:使用 tomcat 用户运行,目录属主设为 tomcat:tomcat,避免以 root 启动。

0