如何将SSM项目通过tomcat部署到Linux云服务器上?

SSM项目分为单体项目和聚合项目,单体项目的部署方式通常是一种,而聚合项目的部署可有两种方式选择,下面将仔细介绍将SSM项目部署到阿里云Linux服务器的三种方式的完整步骤。

同时需要有连接服务器的工具,下面我以mobaxterm工具为例。

一、部署前准备工作

1、部署工具

  • 云服务器:阿里云、腾讯云等等,
  • mobaxterm:连接服务器
  • navicat(可选):便捷上传数据库sql脚本

2、安装并配置环境

(1) 安装JDK

bash 复制代码
# 安装OpenJDK 8
yum install -y java-1.8.0-openjdk-devel

# 验证安装
java -version  # 输出openjdk version "1.8.0_xxx"即成功

# 配置JAVA_HOME(可选,但部分工具需要)
# 先查找JDK安装路径
sudo update-alternatives --config java
# 复制输出中的路径(如/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java),去掉/jre/bin/java部分

# 编辑环境变量文件
sudo vim /etc/profile
# 在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

# 生效配置
source /etc/profile
echo $JAVA_HOME  # 能输出路径即配置成功

(2) 安装MySQL

bash 复制代码
# 1.安装MySQL(2023年新版仓库包)
wget https://dev.mysql.com/get/mysql80-community-release-el7-11.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-11.noarch.rpm
sudo yum install -y mysql-community-server

# 2.启动并设置开机自启
systemctl start mysqld
systemctl enable mysqld

# 3.获取临时密码
grep 'temporary password' /var/log/mysqld.log

# 4.安全设置
mysql_secure_installation

# 5.配置root远程访问
# 登录MySQL
mysql -u root -p
# 切换到mysql库
use mysql;
# 修改root认证方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你设置的root密码';
# 授权root远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 刷新权限
FLUSH PRIVILEGES;
exit;
# 配置MySQL监听地址
sudo vi /etc/my.cnf
# 在[mysqld]部分添加或修改
bind-address = 0.0.0.0
# 保存后重启MySQL
sudo systemctl restart mysqld
#验证监听(应该显示 0.0.0.0:3306 或 :::3306)
sudo netstat -tlnp | grep 3306

按上述步骤在服务器安装和配置MySQL,完成之后可以再配置阿里云安全组,开放3306端口,此时可以使用Navicat连接阿里云服务器的MySQL,直接执行本地的sql文件即可。

(3)安装Tomcat

前往 Apache Tomcat 9 官网 复制 Core -> tar.gz 的链接。

bash 复制代码
cd /usr/local/
# 下载 (链接可能会变,请以官网为准)
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.115/bin/apache-tomcat-9.0.115.tar.gz

# 解压
tar -zxvf apache-tomcat-9.0.115.tar.gz

# 重命名方便管理
mv apache-tomcat-9.0.115 tomcat9

3、项目打包与上传

(1)本地项目打包

点击父工程下的clean,待控制台出现"BUILD SUCCESS"提示之后,点击install,将项目打包。

(2)上传文件到服务器

将本地项目的war包上传到服务器,包括两种方式:

  • 方式一:使用scp命令
bash 复制代码
# 使用scp
scp API.war root@服务器IP:/tmp/
  • 方式二:使用sftp功能上传

在MobaXterm左侧找到SFTP浏览器,连接到你的服务器(与SSH同一个会话),在本地找到WAR包,直接拖拽到服务器的目标目录:

API.war → /usr/local/tomcat9/webapps/

二、部署SSM单体项目

现在我们已经做了好前期准备,部署一个ssm单体项目的流程很简单:

1、配置tomcat

bash 复制代码
# 修改server.xml(调整端口等配置)
vi /opt/tomcat/tomcat9/conf/server.xml

# 找到以下三处进行修改
# Shutdown 端口 (通常在第 22 行左右):
<Server port="8006" shutdown="SHUTDOWN">


# HTTP 端口 (通常在第 69 行左右):
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

# AJP 端口 (通常在第 116 行左右,如果注释掉了就不用管,没注释则要改):
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

2、部署应用

bash 复制代码
# 如果Tomcat正在运行,停止它
systemctl stop tomcat

# 删除webapps下旧的部署(如果有)
rm -rf /opt/tomcat/tomcat9/webapps/yourproject
rm -f /opt/tomcat/tomcat9/webapps/yourproject.war

# 将WAR文件复制到webapps目录
cp /path/to/yourproject.war /opt/tomcat/tomcat9/webapps/

# 启动Tomcat(会自动解压WAR文件)
systemctl start tomcat

# 查看部署日志
tail -f /opt/tomcat/tomcat9/logs/catalina.out

3、配置项目

bash 复制代码
# 如果项目需要配置文件,可以放在外部
mkdir /opt/app-config
vi /opt/app-config/application.properties

# 修改Tomcat的catalina.sh添加配置路径
vi /opt/tomcat/tomcat9/bin/catalina.sh
# 在开头添加
export CATALINA_OPTS="$CATALINA_OPTS -Dspring.config.location=/opt/app-config/"

4、防火墙和安全组配置

bash 复制代码
# 开放8080端口
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

# 或者直接关闭防火墙(仅测试环境)
systemctl stop firewalld
systemctl disable firewalld

同时登录阿里云控制台,进入ECS实例,找到安全组配置,添加入方向规则:端口范围:8080;授权对象:0.0.0.0/0(或指定IP)

二、部署SSM聚合项目(将不同模块放在不同Tomcat服务下)

1、复制Tomcat目录

在该文章第一部分,我们已经解压了一个标准的Tomcat到/usr/local/tomcat9。我们将它作为"母板",复制出两份新的。

bash 复制代码
cd /usr/local/

# 复制出 Admin 用的 Tomcat
cp -r tomcat9 tomcat-admin

# 复制出 API 用的 Tomcat
cp -r tomcat9 tomcat-api

2、修改tomcat端口配置

Tomcat 默认占用 3 个端口,必须全部修改,否则第 2 个 Tomcat 启动时会报错端口被占用。

(1)修改tomcat-admin的配置

bash 复制代码
# 编辑配置文件
vi /usr/local/tomcat-admin/conf/server.xml

找到以下三处并修改:

bash 复制代码
# Shutdown 端口 (通常在第 22 行左右):
<Server port="8006" shutdown="SHUTDOWN">


# HTTP 端口 (通常在第 69 行左右):
<Connector port="8081" protocol="HTTP/1.1"
           connectionTimeout="20000"
           redirectPort="8443" />

# AJP 端口 (通常在第 116 行左右,如果注释掉了就不用管,没注释则要改):
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />

(2)修改tomcat-api的配置

bash 复制代码
vi /usr/local/tomcat-api/conf/server.xml

Server port 改为 8007

Connector HTTP port 改为 8082

Connector AJP port 改为 8011

3、部署 WAR 包

将 WAR 包分别放入对应的 Tomcat 容器中。为了访问方便(不带项目名),建议都重命名为 ROOT.war。

(1)部署 Admin 项目

bash 复制代码
# 先清空默认应用
rm -rf /usr/local/tomcat-admin/webapps/*

# 上传并重命名 (假设 war 包在本地当前目录)
scp admin.war root@服务器IP:/usr/local/tomcat-admin/webapps/ROOT.war

*访问地址将是:http://服务器IP:8081/\*

(2) 部署 API 项目

bash 复制代码
# 先清空默认应用
rm -rf /usr/local/tomcat-api/webapps/*

# 上传
scp api.war root@服务器IP:/usr/local/tomcat-api/webapps/ROOT.war

*访问地址将是:http://服务器IP:8082/\*

4、启动与运维

(1)启动

bash 复制代码
# 启动 Admin
/usr/local/tomcat-admin/bin/startup.sh

# 启动 API
/usr/local/tomcat-api/bin/startup.sh

(2)检查

bash 复制代码
# 使用ps命令查看进程,应该能看到两个java进程。
ps -ef | grep tomcat


#或者检查端口监听:
netstat -ntlp | grep java
# 应该能看到 8081, 8006, 8082, 8007 都在 LISTENING

(3)开放防火墙

启动并配置防火墙

bash 复制代码
# 启动firewalld服务
sudo systemctl start firewalld

# 设置开机自启
sudo systemctl enable firewalld

# 开放Tomcat端口
sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent

# 重新加载防火墙规则
sudo firewall-cmd --reload

# 验证端口已开放
sudo firewall-cmd --zone=public --list-ports

同时配置阿里云安全组(如果还没配):

登录阿里云ECS控制台

找到你的实例 → 安全组 → 配置规则

添加规则:允许TCP 8081和8085端口(源:0.0.0.0/0 或你的IP)

(4) 验证服务状态

bash 复制代码
# 在服务器上测试
curl -I http://localhost:8081
curl -I http://localhost:8082
相关推荐
ICT董老师2 小时前
在Linux中,有多种命令可以向指定文件添加文本
linux·运维·服务器
hy____1232 小时前
Linux_进程信号
linux·运维·服务器
强风7942 小时前
Linux—应用层自定义协议与序列化
运维·服务器·网络
白日梦想家6812 小时前
第三篇:Node.js 性能优化实战:提升服务并发与稳定性
linux·编辑器·vim
晚风吹长发2 小时前
初步了解Linux中的线程概率及线程控制
linux·运维·服务器·开发语言·c++·centos·线程
i建模2 小时前
在 Ubuntu 中为 npm 切换国内镜像源
linux·ubuntu·npm
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][gpio]gpio
linux·笔记·学习
计算机毕设指导63 小时前
基于微信小程序的智能停车场管理系统【源码文末联系】
java·spring boot·微信小程序·小程序·tomcat·maven·intellij-idea
每天瞎忙的农民工3 小时前
Ubuntu 24 安装npm22
linux·运维·ubuntu·npm