引言
Tomcat作为Apache基金会旗下的开源Java Servlet容器,已成为企业级Java Web应用部署的首选方案。在CentOS系统上部署Tomcat服务器,不仅能够获得稳定的运行环境,还能充分利用CentOS的安全特性。本文将详细介绍在CentOS 7/8系统上从零开始部署Tomcat 9的完整流程。
环境准备
在开始部署前,请确保您的CentOS系统满足以下条件:
- CentOS 7或CentOS 8系统(推荐CentOS 7)
- 至少2GB可用内存
- 10GB可用磁盘空间
- root或sudo权限用户
- 稳定的网络连接
第一步:安装Java环境
Tomcat是基于Java的应用,因此需要先安装JDK。推荐使用OpenJDK 11或更高版本。
1.1 检查现有Java版本
执行以下命令检查系统是否已安装Java:
java -version
1.2 安装OpenJDK
如果未安装Java,使用yum包管理器安装:
sudo yum install -y java-11-openjdk java-11-openjdk-devel
1.3 配置JAVA_HOME环境变量
编辑/etc/profile文件,在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$PATH:$JAVA_HOME/bin
使配置生效:
source /etc/profile
第二步:下载并安装Tomcat
2.1 创建tomcat用户
为安全考虑,建议创建专用用户运行Tomcat:
sudo useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
2.2 下载Tomcat 9
访问Apache Tomcat官网获取最新下载链接,或使用wget直接下载:
cd /tmp
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.85/src/apache-tomcat-9.0.85-src.tar.gz
2.3 解压并安装
解压下载的文件到/opt/tomcat目录:
sudo mkdir /opt/tomcat
sudo tar -xzf apache-tomcat-9.0.85-src.tar.gz -C /opt/tomcat --strip-components=1
2.4 设置权限
更改Tomcat目录的所有权:
sudo chown -R tomcat:tomcat /opt/tomcat
sudo chmod -R 755 /opt/tomcat/bin/*.sh
第三步:配置Tomcat服务
3.1 创建systemd服务文件
创建/etc/systemd/system/tomcat.service文件:
sudo nano /etc/systemd/system/tomcat.service
添加以下内容:
[Unit]
Description=Apache Tomcat 9 Web Application Container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment=JAVA_HOME=/usr/lib/jvm/java-11-openjdk
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
3.2 启动并启用Tomcat服务
重新加载systemd配置:
sudo systemctl daemon-reload
启动Tomcat服务:
sudo systemctl start tomcat
设置开机自启:
sudo systemctl enable tomcat
检查服务状态:
sudo systemctl status tomcat
第四步:配置防火墙
如果系统启用了防火墙,需要开放8080端口:
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
第五步:访问Tomcat管理界面
5.1 配置管理用户
编辑/opt/tomcat/conf/tomcat-users.xml文件,在<tomcat-users>标签内添加:
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="admin" password="your_password" roles="manager-gui,admin-gui"/>
5.2 允许远程访问
默认情况下,Manager应用只允许本地访问。如需远程访问,需要修改/opt/tomcat/webapps/manager/META-INF/context.xml文件,注释掉IP地址限制部分。
5.3 访问验证
在浏览器中访问:http://your_server_ip:8080
常见问题排查
问题1:端口8080被占用
使用以下命令检查端口占用情况:
sudo netstat -tlnp | grep 8080
如果端口被占用,可以修改/opt/tomcat/conf/server.xml文件中的Connector端口。
问题2:内存不足
对于大型应用,可能需要调整JVM内存设置。编辑/opt/tomcat/bin/catalina.sh文件,添加:
JAVA_OPTS="-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m"
问题3:中文乱码
在/opt/tomcat/conf/server.xml的Connector中添加URIEncoding="UTF-8"属性。
性能优化建议
- 使用NIO连接器:在
server.xml中配置NIO或NIO2连接器以提升性能 - 启用GZIP压缩:减少网络传输数据量
- 配置JVM参数:根据服务器内存调整堆内存大小
- 使用连接池:配置数据库连接池提升数据库访问性能
- 定期清理日志:避免日志文件占用过多磁盘空间
安全加固措施
- 修改默认端口:将8080端口改为非标准端口
- 禁用管理界面:如果不需要,删除manager和host-manager应用
- 配置HTTPS:使用SSL证书加密数据传输
- 定期更新:保持Tomcat和Java版本为最新稳定版
- 限制访问IP:通过防火墙或Tomcat配置限制访问来源
总结
通过以上步骤,您已经成功在CentOS系统上部署了Tomcat服务器。在实际生产环境中,还需要根据具体需求进行更详细的配置和优化。建议定期关注Apache Tomcat官方发布的安全公告,及时更新系统以确保服务安全稳定运行。
对于需要更高性能的场景,可以考虑使用Nginx作为反向代理,或者配置Tomcat集群实现负载均衡。随着业务增长,持续的监控和调优将是保障服务质量的关锟。