Linux下Tomcat服务器部署和项目部署全过程
一、环境准备
1.1 系统要求
- CentOS 7/8 或 Ubuntu 18.04/20.04
- JDK 1.8或更高版本
- Tomcat 8.5/9.0/10.0
1.2 检查系统
# 查看系统版本
cat /etc/os-release
uname -r
# 检查Java是否安装
java -version
二、JDK安装(如未安装)
2.1 CentOS安装JDK
# 方法1:使用yum安装OpenJDK
sudo yum update
sudo yum install java-1.8.0-openjdk-devel
# 方法2:手动安装Oracle JDK
# 下载JDK(从Oracle官网)
wget https://download.oracle.com/otn-pub/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/jdk-8u281-linux-x64.tar.gz
# 解压
tar -zxvf jdk-8u281-linux-x64.tar.gz -C /usr/local/
# 配置环境变量
sudo vi /etc/profile
在/etc/profile末尾添加:
export JAVA_HOME=/usr/local/jdk1.8.0_281
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使配置生效:
source /etc/profile
java -version
2.2 Ubuntu安装JDK
sudo apt update
sudo apt install openjdk-8-jdk
java -version
三、Tomcat安装与配置
3.1 下载Tomcat
# 进入opt目录
cd /opt
# 下载Tomcat 9(可根据需要选择版本)
wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
# 或者使用更快的镜像
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
# 解压
tar -zxvf apache-tomcat-9.0.54.tar.gz
# 重命名目录(可选)
mv apache-tomcat-9.0.54 tomcat9
3.2 创建Tomcat用户(安全考虑)
# 创建tomcat组
sudo groupadd tomcat
# 创建tomcat用户
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat9 tomcat
# 设置目录权限
sudo chown -R tomcat:tomcat /opt/tomcat9
sudo chmod +x /opt/tomcat9/bin/*.sh
3.3 配置环境变量
sudo vi /etc/profile.d/tomcat.sh
添加以下内容:
export CATALINA_HOME=/opt/tomcat9
export PATH=$CATALINA_HOME/bin:$PATH
使配置生效:
source /etc/profile.d/tomcat.sh
3.4 配置Tomcat
# 编辑server.xml
sudo vi /opt/tomcat9/conf/server.xml
修改连接器配置(可选):
<!-- 修改端口号 -->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="200"
minSpareThreads="10"
maxPostSize="52428800" />
<!-- 启用AJP连接器(可选) -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3.5 配置管理员账号
sudo vi /opt/tomcat9/conf/tomcat-users.xml
在</tomcat-users>前添加:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<user username="admin" password="your_secure_password"
roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
3.6 配置远程访问管理界面(可选)
# 允许远程访问管理界面
sudo vi /opt/tomcat9/webapps/manager/META-INF/context.xml
注释掉或修改IP限制:
<!-- 注释掉Valve配置 -->
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
四、Tomcat服务管理
4.1 创建Systemd服务(推荐)
sudo vi /etc/systemd/system/tomcat.service
添加以下内容:
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/jdk1.8.0_281
Environment=CATALINA_PID=/opt/tomcat9/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat9
Environment=CATALINA_BASE=/opt/tomcat9
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
4.2 启动和管理服务
# 重新加载systemd配置
sudo systemctl daemon-reload
# 启动Tomcat
sudo systemctl start tomcat
# 设置开机启动
sudo systemctl enable tomcat
# 查看状态
sudo systemctl status tomcat
# 停止Tomcat
sudo systemctl stop tomcat
# 重启Tomcat
sudo systemctl restart tomcat
# 查看日志
sudo journalctl -f -u tomcat
# 或直接查看日志文件
tail -f /opt/tomcat9/logs/catalina.out
五、项目部署
5.1 部署WAR包方式
方式1:直接复制到webapps目录
# 上传WAR包到服务器
scp your-project.war user@server_ip:/tmp/
# 复制到webapps目录
sudo cp /tmp/your-project.war /opt/tomcat9/webapps/
# Tomcat会自动解压并部署
# 重启Tomcat使配置生效
sudo systemctl restart tomcat
方式2:修改server.xml配置
# 编辑server.xml
sudo vi /opt/tomcat9/conf/server.xml
添加Context配置:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!-- 添加项目配置 -->
<Context path="/yourproject" docBase="/opt/tomcat9/webapps/your-project.war" reloadable="true" />
</Host>
方式3:使用独立配置文件
# 在conf/Catalina/localhost/下创建xml文件
sudo vi /opt/tomcat9/conf/Catalina/localhost/yourproject.xml
添加内容:
<?xml version="1.0" encoding="UTF-8"?>
<Context
docBase="/opt/tomcat9/webapps/your-project.war"
reloadable="true"
crossContext="true">
</Context>
5.2 部署文件夹方式(用于开发调试)
# 将项目文件夹上传到服务器
scp -r your-project user@server_ip:/tmp/
# 复制到webapps目录
sudo cp -r /tmp/your-project /opt/tomcat9/webapps/
# 设置权限
sudo chown -R tomcat:tomcat /opt/tomcat9/webapps/your-project
# 重启Tomcat
sudo systemctl restart tomcat
5.3 使用Tomcat管理界面部署
访问
http://server_ip:8080/manager/html
输入配置的管理员账号密码
在"WAR file to deploy"部分上传WAR包
六、虚拟主机配置(多域名)
6.1 配置虚拟主机
sudo vi /opt/tomcat9/conf/server.xml
添加Host配置:
<Engine name="Catalina" defaultHost="localhost">
<Host name="www.domain1.com" appBase="webapps/domain1"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="domain1_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
<Host name="www.domain2.com" appBase="webapps/domain2"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="." reloadable="true"/>
</Host>
</Engine>
6.2 创建目录结构
# 创建虚拟主机目录
sudo mkdir -p /opt/tomcat9/webapps/domain1
sudo mkdir -p /opt/tomcat9/webapps/domain2
# 设置权限
sudo chown -R tomcat:tomcat /opt/tomcat9/webapps/domain*
七、SSL/TLS配置(HTTPS)
7.1 生成证书(自签名)
# 创建证书目录
sudo mkdir /opt/tomcat9/ssl
cd /opt/tomcat9/ssl
# 生成证书
sudo keytool -genkeypair \
-alias tomcat \
-keyalg RSA \
-keysize 2048 \
-keystore keystore.jks \
-validity 3650 \
-dname "CN=yourdomain.com, OU=IT, O=Company, L=City, S=State, C=CN"
7.2 配置HTTPS连接器
sudo vi /opt/tomcat9/conf/server.xml
取消注释并修改SSL连接器:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="/opt/tomcat9/ssl/keystore.jks"
certificateKeystorePassword="your_password"
type="RSA" />
</SSLHostConfig>
</Connector>
八、性能优化
8.1 JVM优化
sudo vi /etc/systemd/system/tomcat.service
修改JVM参数:
Environment='CATALINA_OPTS=-Xms2G -Xmx4G -XX:+UseG1GC -XX:+DisableExplicitGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/tomcat9/logs/heapdump.hprof'
8.2 Tomcat优化
sudo vi /opt/tomcat9/conf/server.xml
优化连接器:
<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout="20000"
redirectPort="8443"
maxThreads="500"
minSpareThreads="50"
acceptCount="200"
maxPostSize="52428800"
enableLookups="false"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,text/plain,text/css,text/javascript,application/json,application/javascript" />
九、安全配置
9.1 删除默认应用(生产环境)
# 删除默认应用(可选)
sudo rm -rf /opt/tomcat9/webapps/docs
sudo rm -rf /opt/tomcat9/webapps/examples
sudo rm -rf /opt/tomcat9/webapps/ROOT
9.2 修改关闭端口和命令
sudo vi /opt/tomcat9/conf/server.xml
修改Server端口和关闭命令:
<Server port="8005" shutdown="SHUTDOWN_SECRET">
十、常见问题排查
10.1 查看日志
# 查看启动日志
tail -f /opt/tomcat9/logs/catalina.out
# 查看特定日期日志
tail -f /opt/tomcat9/logs/catalina.$(date +%Y-%m-%d).log
# 查看应用日志
tail -f /opt/tomcat9/logs/localhost.$(date +%Y-%m-%d).log
10.2 端口检查
# 检查端口占用
sudo netstat -tlnp | grep :8080
# 检查防火墙
sudo firewall-cmd --list-all # CentOS
sudo ufw status # Ubuntu
10.3 权限问题
# 修复权限问题
sudo chown -R tomcat:tomcat /opt/tomcat9
sudo chmod -R 755 /opt/tomcat9
十一、备份与恢复
11.1 备份配置
# 备份Tomcat配置
tar -czf tomcat-backup-$(date +%Y%m%d).tar.gz \
/opt/tomcat9/conf \
/opt/tomcat9/webapps \
/opt/tomcat9/ssl
11.2 备份应用数据
# 备份数据库和应用数据
mysqldump -u username -p database > backup.sql
tar -czf app-data-$(date +%Y%m%d).tar.gz /path/to/data
总结
部署检查清单:
✅ JDK安装和配置
✅ Tomcat安装和权限配置
✅ 系统服务配置
✅ 防火墙和安全组配置
✅ 项目部署和测试
✅ SSL证书配置(如需)
✅ 备份策略制定
✅ 监控和日志配置
快速测试:
# 测试Tomcat是否运行
curl http://localhost:8080
# 测试应用是否部署
curl http://localhost:8080/your-project/
# 测试HTTPS(如配置)
curl -k https://localhost:8443
通过以上步骤,您应该能够在Linux系统上成功部署Tomcat服务器和Java Web项目。根据实际需求调整配置参数,并确保进行适当的安全配置。