1. 为什么选择在Linux上部署Tomcat作为Java开发者我们经常需要在服务器环境部署Web应用。Linux系统以其稳定性、安全性和资源占用低的特性成为生产环境的首选。而Tomcat作为Apache软件基金会下的开源Servlet容器凭借其轻量级和良好的性能表现在中小型Java Web项目中占据重要地位。我曾在CentOS和Ubuntu两种主流Linux发行版上部署过数十次Tomcat遇到过各种坑。比如有一次在客户现场因为没配置JAVA_HOME导致Tomcat启动失败排查了整整两小时才发现问题。本文将分享我在Linux系统上安装部署Tomcat的完整经验包括环境准备、安装配置、优化调优等全流程。2. 环境准备与依赖检查2.1 选择合适的Linux发行版Tomcat可以运行在大多数Linux发行版上但不同发行版的包管理工具和目录结构略有差异CentOS/RHEL企业级首选稳定性高使用yum包管理器Ubuntu/Debian社区支持好使用apt包管理器OpenSUSEYaST工具提供图形化配置界面建议生产环境选择LTS(Long Term Support)版本如Ubuntu 20.04 LTS或CentOS 7/8。2.2 JDK安装与配置Tomcat运行需要Java环境支持推荐安装OpenJDK# Ubuntu/Debian sudo apt update sudo apt install openjdk-11-jdk # CentOS/RHEL sudo yum install java-11-openjdk-devel安装后验证Java版本java -version关键步骤必须设置JAVA_HOME环境变量。编辑~/.bashrc或/etc/profile文件export JAVA_HOME$(dirname $(dirname $(readlink -f $(which java)))) export PATH$PATH:$JAVA_HOME/bin然后执行source ~/.bashrc使配置生效。这是很多新手容易忽略的关键点没有正确配置JAVA_HOME会导致Tomcat启动失败。3. Tomcat安装与基础配置3.1 获取Tomcat二进制包推荐从Apache官网下载最新稳定版wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz注意生产环境应使用稳定版本而非最新版避免潜在兼容性问题。解压安装包到/opt目录推荐sudo tar -xzvf apache-tomcat-9.0.68.tar.gz -C /opt sudo ln -s /opt/apache-tomcat-9.0.68 /opt/tomcat # 创建软链接方便管理3.2 目录结构解析了解Tomcat目录结构对后续配置和问题排查很重要目录用途bin启动/停止脚本conf配置文件server.xml等lib依赖库logs日志文件webapps应用部署目录work运行时生成的文件3.3 创建专用用户为安全考虑不应使用root用户运行Tomcatsudo groupadd tomcat sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat sudo chown -R tomcat:tomcat /opt/apache-tomcat-9.0.684. 服务配置与优化4.1 配置系统服务创建systemd服务文件/etc/systemd/system/tomcat.service[Unit] DescriptionApache Tomcat Web Application Container Afternetwork.target [Service] Typeforking Usertomcat Grouptomcat EnvironmentJAVA_HOME/usr/lib/jvm/java-11-openjdk-amd64 EnvironmentCATALINA_PID/opt/tomcat/temp/tomcat.pid EnvironmentCATALINA_HOME/opt/tomcat EnvironmentCATALINA_BASE/opt/tomcat ExecStart/opt/tomcat/bin/startup.sh ExecStop/opt/tomcat/bin/shutdown.sh Restarton-failure [Install] WantedBymulti-user.target启用并启动服务sudo systemctl daemon-reload sudo systemctl enable tomcat sudo systemctl start tomcat4.2 基础安全配置修改默认端口编辑conf/server.xml将8080改为非常用端口禁用管理界面非必要不部署manager和host-manager应用配置访问限制在conf/tomcat-users.xml中设置强密码4.3 性能调优修改conf/server.xml中的Connector配置Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 maxThreads200 minSpareThreads10 acceptCount100 enableLookupsfalse URIEncodingUTF-8/关键参数说明maxThreads最大处理线程数根据CPU核心数调整minSpareThreads最小空闲线程数acceptCount等待队列长度5. 应用部署与日常管理5.1 部署Web应用有三种常用部署方式直接复制WAR包将应用WAR文件放入webapps目录热部署通过Manager应用界面部署上下文配置在conf/Catalina/localhost下创建XML文件推荐生产环境使用第一种方式简单可靠。5.2 日志管理Tomcat主要日志文件catalina.out主日志localhost.[date].log应用日志host-manager.[date].log管理界面日志建议配置日志轮转编辑conf/logging.properties调整日志级别和输出格式。5.3 常见问题排查问题1Tomcat启动失败无错误信息检查catalina.out日志确认JAVA_HOME设置正确检查端口是否被占用netstat -tulnp | grep 8080问题2应用访问出现乱码确认Connector配置了URIEncodingUTF-8检查应用本身的编码设置确保Linux系统locale配置正确问题3内存溢出调整bin/setenv.sh中的内存参数export JAVA_OPTS-Xms512m -Xmx1024m -XX:MaxPermSize256m6. 进阶配置与安全加固6.1 SSL/TLS配置生成自签名证书keytool -genkey -alias tomcat -keyalg RSA -keystore /opt/tomcat/conf/keystore.jks修改server.xml配置HTTPS连接器Connector port8443 protocolorg.apache.coyote.http11.Http11NioProtocol maxThreads150 SSLEnabledtrue SSLHostConfig Certificate certificateKeystoreFile/opt/tomcat/conf/keystore.jks certificateKeystorePasswordchangeit typeRSA / /SSLHostConfig /Connector6.2 连接器优化对于高并发场景考虑使用NIO2或APR连接器Connector executortomcatThreadPool port8080 protocolorg.apache.coyote.http11.Http11Nio2Protocol connectionTimeout20000 redirectPort8443 /6.3 防火墙配置开放必要端口sudo ufw allow 8080/tcp sudo ufw allow 8443/tcp sudo ufw enable对于生产环境建议配置反向代理如Nginx而不是直接暴露Tomcat端口。7. 监控与维护7.1 健康检查配置JMX监控export CATALINA_OPTS-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port1099 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse7.2 备份策略关键需要备份的目录conf所有配置文件webapps部署的应用logs历史日志可选建议编写自动化备份脚本定期备份到远程存储。7.3 版本升级升级步骤备份当前安装下载新版本并解压到新目录复制旧版的conf、webapps等到新目录测试新版本切换软链接指向新版本升级前务必阅读官方Release Notes了解兼容性变化。
阅读完成 · 觉得有帮助?