温馨提示×

CentOS Tomcat如何升级与维护

小樊
55
2025-09-30 21:37:29
栏目: 智能运维

CentOS环境下Tomcat升级与维护指南

一、Tomcat升级流程(手动方式,推荐)

1. 升级前准备:备份与停止服务

  • 备份旧版本:复制Tomcat安装目录(如/usr/share/tomcat)和配置目录(如/etc/tomcat)到备份路径,避免数据丢失。
    sudo cp -r /usr/share/tomcat /usr/share/tomcat-backup-$(date +%Y%m%d)
    sudo cp -r /etc/tomcat /etc/tomcat-backup-$(date +%Y%m%d)
    
  • 停止Tomcat服务:通过systemd停止运行中的Tomcat进程。
    sudo systemctl stop tomcat
    

2. 下载与解压新版本

  • 下载新版本:访问Tomcat官方网站(如Tomcat 9.0.x),下载对应版本的压缩包(如apache-tomcat-9.0.56.tar.gz)。
    wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
    
  • 解压到目标目录:将压缩包解压到Tomcat常用安装路径(如/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
    
  • 迁移配置与数据:将旧版本的webapps(应用目录)、conf(配置文件)复制到新版本目录,覆盖默认配置。
    sudo cp -r /usr/share/tomcat-old/webapps /usr/share/tomcat/
    sudo cp -r /usr/share/tomcat-old/conf /usr/share/tomcat/
    

4. 启动与验证

  • 启动Tomcat:通过systemd启动服务并设置开机自启。
    sudo systemctl start tomcat
    sudo systemctl enable tomcat
    
  • 验证状态:检查服务运行状态及默认页面是否可访问。
    sudo systemctl status tomcat  # 查看状态(应为active(running))
    curl http://localhost:8080     # 访问默认页面(应显示Tomcat欢迎页)
    

5. 清理旧版本

  • 删除备份目录:确认新版本运行正常后,删除旧版本备份以释放空间。
    sudo rm -rf /usr/share/tomcat-old
    sudo rm -rf apache-tomcat-9.0.56.tar.gz  # 删除下载的压缩包
    

二、Tomcat维护要点

1. 安全加固

  • 删除默认组件:移除webapps目录下的docsexampleshost-managermanager等示例应用,减少攻击面。
    sudo rm -rf /usr/share/tomcat/webapps/docs /usr/share/tomcat/webapps/examples
    
  • 隐藏版本信息:修改server.xml中的Connector节点,添加server属性掩盖Tomcat版本。
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" 
               server="MyCustomServer/1.0" />
    
  • 限制管理访问:在tomcat-users.xml中配置强密码,并限制管理角色(如manager-gui)的IP访问。
    <role rolename="manager-gui"/>
    <user username="admin" password="SecurePass123!" roles="manager-gui"/>
    
  • 配置HTTPS:通过keytool生成SSL证书,修改server.xml添加HTTPS连接器(端口8443)。
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               SSLEnabled="true" scheme="https" secure="true"
               keystoreFile="/etc/pki/tls/certs/tomcat.keystore"
               keystorePass="yourKeystorePassword"/>
    

2. 日常管理

  • 日志审计:定期检查logs目录下的catalina.out(运行日志)、access_log(访问日志),监控异常请求(如大量404/500错误)。
    tail -f /usr/share/tomcat/logs/catalina.out  # 实时查看运行日志
    grep "ERROR" /usr/share/tomcat/logs/catalina.out  # 筛选错误日志
    
  • 自动部署关闭:在server.xmlHost节点中,设置autoDeploy="false"unpackWARs="false",防止恶意WAR文件自动部署。
    <Host name="localhost" appBase="webapps" 
          unpackWARs="false" autoDeploy="false">
    
  • 系统更新:定期通过yum更新CentOS系统和Tomcat(若使用YUM仓库安装),修复已知漏洞。
    sudo yum update centos-release-tomcat  # 更新Tomcat YUM仓库
    sudo yum update tomcat                 # 更新Tomcat
    

3. 性能优化

  • 调整JVM内存:修改setenv.sh(位于bin目录)中的JAVA_OPTS,根据服务器内存调整堆大小(如-Xms512M -Xmx1024M)。
    echo 'export JAVA_OPTS="-Xms512M -Xmx1024M -server -XX:+UseParallelGC"' | sudo tee /usr/share/tomcat/bin/setenv.sh
    sudo chmod +x /usr/share/tomcat/bin/setenv.sh
    
  • 线程池配置:在server.xmlConnector节点中,调整maxThreads(最大线程数,默认200,可根据并发量增大)和minSpareThreads(最小空闲线程数,默认25)。
    <Connector port="8080" protocol="HTTP/1.1" 
               maxThreads="300" 
               minSpareThreads="50"
               ... />
    

0