蚌埠市中国转运网

linux之Tomcat服务器部署和项目部署全过程

2026-03-25 18:53:02 浏览次数:1
详细信息
Linux下Tomcat服务器部署和项目部署全过程

一、环境准备

1.1 系统要求

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 &quot;%r&quot; %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项目。根据实际需求调整配置参数,并确保进行适当的安全配置。

相关推荐