CentOS 7 安装 Tomcat 全流程详解
在 CentOS 7 服务器上部署 Java Web 应用,Tomcat 是广受欢迎的高性能选择,遵循标准流程进行安装配置,能确保服务稳定可靠运行,以下为详细操作指南:
安装必备环境:Java JDK
Tomcat 运行依赖 Java 环境,推荐安装 OpenJDK:
- # 更新系统包
- sudo yum update -y
- # 搜索可用的 OpenJDK 11 包 (推荐稳定版本)
- sudo yum search openjdk
- # 安装 OpenJDK 11 开发包
- sudo yum install -y java-11-openjdk-devel
验证 Java 安装是否成功:
- java -version
- # 应输出类似:openjdk version "11.0.xx" ...
创建专用系统用户 (增强安全性)
为 Tomcat 创建独立用户,避免使用 root 运行:
- sudo groupadd tomcat
- sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
- # 参数说明:-M 不创建家目录,-s 禁止登录,-g 指定组,-d 指定主目录
下载并安装 Tomcat
-
访问官网获取最新稳定版:前往 Apache Tomcat 官方网站 (https://tomcat.apache.org),在 "Download" 区域找到 Tomcat 9或 10 的核心版本 (Binary Distributions -> Core) 的 tar.gz 包链接。
-
使用 wget 下载到服务器:
- # 进入临时目录,替换链接为实际获取的地址
- cd/tmp
- sudo wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.xx/bin/apache-tomcat-9.0.xx.tar.gz
-
解压并移动到安装目录:
- # 解压
- sudo tar -xvzf apache-tomcat-9.0.xx.tar.gz
- # 创建目标目录
- sudo mkdir-p /opt/tomcat
- # 移动并重命名
- sudo mvapache-tomcat-9.0.xx /opt/tomcat/latest
-
设置权限归属:
- sudo chown-R tomcat:tomcat /opt/tomcat/latest
- sudo chmod-R u+x /opt/tomcat/latest/bin
- # 确保 bin 目录下的脚本有执行权限
配置环境变量 (推荐)
编辑 Tomcat 用户的配置文件,设置 CATALINA_HOME:
- sudo vi /opt/tomcat/latest/bin/setenv.sh
- ```(如文件不存在则创建):
- ```bash
- #!/bin/bash
- exportCATALINA_HOME="/opt/tomcat/latest"
- exportCATALINA_PID="$CATALINA_HOME/tomcat.pid"
- # 可添加其他自定义 JAVA_OPTS 参数
赋予执行权限:
- sudo chmod+x /opt/tomcat/latest/bin/setenv.sh
- sudo chowntomcat:tomcat /opt/tomcat/latest/bin/setenv.sh
配置 Systemd 服务 (实现开机自启与管理)
-
创建服务单元文件:
- sudo vi /etc/systemd/system/tomcat.service
-
输入以下配置内容:
- [Unit]
- Description=Apache Tomcat Web Application Container
- After=syslog.target network.target
- [Service]
- Type=forking
- EnvironmentFile=/opt/tomcat/latest/bin/setenv.sh
- User=tomcat
- Group=tomcat
- PIDFile=/opt/tomcat/latest/tomcat.pid
- ExecStart=/opt/tomcat/latest/bin/startup.sh
- ExecStop=/opt/tomcat/latest/bin/shutdown.sh
- Restart=on-failure
- RestartSec=10
- [Install]
- WantedBy=multi-user.target
-
重载 systemd 并启动 Tomcat:
- sudo systemctl daemon-reload
- sudo systemctl start tomcat
- sudo systemctl enabletomcat # 设置开机启动
-
检查服务状态:
- sudo systemctl status tomcat
- # 应显示 "active (running)"
配置防火墙放行端口
默认情况下,Tomcat 监听 8080端口:
- sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
- sudo firewall-cmd --reload
验证安装与访问管理界面
-
访问默认主页:在浏览器中输入:http://<你的服务器IP地址>:8080,应看到 Apache Tomcat 欢迎页面。
-
访问管理界面 (可选但需谨慎配置):
-
编辑配置文件启用管理用户:
- sudo vi /opt/tomcat/latest/conf/tomcat-users.xml
-
在 <tomcat-users>标签内添加角色和用户 (替换 your_username和 your_password):
- <rolerolename="manager-gui"/>
- <rolerolename="admin-gui"/>
- <userusername="your_username"password="your_strong_password"roles="manager-gui,admin-gui"/>
-
默认出于安全,Manager 和 Host Manager 应用仅允许本地访问,如需远程管理 (生产环境慎用),需修改:
- sudo vi /opt/tomcat/latest/webapps/manager/META-INF/context.xml
- sudo vi /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
注释掉或修改 Valve部分的 allow属性,例如允许特定IP或所有IP (allow="^.*$"不推荐)。
-
重启 Tomcat 生效:
- sudo systemctl restart tomcat
- 访问 http://<IP>:8080/manager/html或 http://<IP>:8080/host-manager/html并使用配置的用户名密码登录。
-
编辑配置文件启用管理用户:
关键安全实践建议
- 禁用未使用组件:生产环境移除 docs, examples等目录 (/opt/tomcat/latest/webapps/)。
- 强化管理密码:为 tomcat-users.xml中的用户设置复杂且唯一的密码。
- 最小化访问权限:严格控制 Manager 和 Host Manager 的远程访问权限,最好通过 VPN 或 SSH 隧道访问。
- 保持更新:定期关注 Tomcat 和 JDK 的安全公告,及时更新至稳定版本。
- 考虑反向代理:使用 Nginx 或 Apache HTTPD 作为前端反向代理,处理 SSL 卸载、静态文件、负载均衡等,同时隐藏 Tomcat 版本信息。
遇到问题怎么办?
- 检查日志:首要查看 Tomcat 日志文件 /opt/tomcat/latest/logs/catalina.out。
- 验证端口:使用 sudo netstat -tulnp | grep java或 sudo ss -tulnp | grep java确认 Tomcat 是否在监听 8080端口。
- 检查权限:确保 /opt/tomcat/latest及其子目录的所有者为 tomcat:tomcat且关键脚本有执行权限。
- 检查服务状态:sudo systemctl status tomcat -l查看详细状态和可能的错误信息。
- 确认防火墙:sudo firewall-cmd --list-all检查 8080/tcp端口是否在放行列表中。
在 CentOS 7 上部署 Tomcat 是 Java 应用上线的关键一步,严格按照标准流程操作并贯彻安全配置原则,能为后续应用稳定运行打下坚实基础,经验表明,前期细致的配置远胜于问题发生后的紧急排查,尤其在权限控制与网络访问策略上,多花十分钟思考限制,往往能避免数小时的故障处理时间。