阿里云项目迁移:若依项目从本地迁到阿里云上
目录
前言
ECS(云服务器):相当于你的电脑主机,用来运行代码。需求中提到的 CentOS 7.9+ 是操作系统。对于新手,建议先从 1台 2核4G 的 ECS 开始尝试,跑通全流程后再考虑扩展为多台。
RDS(云数据库):相当于专业的数据保险柜。千万不要把数据库装在ECS上,必须单独购买 RDS MySQL 高可用版。这样即使服务器宕机,数据也不会丢。
Redis(缓存):相当于一个高速暂存区,用来提升系统响应速度。
用户访问时,只认 SLB 的公网 IP。SLB 会把请求分发给后面的 ECS。如果其中一台 ECS 突然死机了,SLB 会发现并自动把流量切给另一台健康的 ECS,用户完全感觉不到系统出过故障。
整体架构
[ 互联网用户 ]
│ (访问公网IP)
▼
[ SLB 负载均衡 ] ──── (交通指挥员,负责分发流量、剔除故障机器)
│ (内网转发)
▼
[ ECS 云服务器 ] ──── (应用处理车间)
├── Nginx (前端) ─── 负责展示 Vue 静态页面
└── Spring Boot (后端) ── 负责处理业务逻辑
│ (通过内网通信,速度极快)
▼
[ 云数据库与缓存 ] ──── (独立的数据保险柜与高速暂存区)
├── RDS MySQL (高可用版) ── 专门存储数据
└── Redis (标准版) ──── 专门做缓存
将本地 Docker 环境中的若依(RuoYi-Vue v3.8.9)迁移到阿里云 RDS MySQL 8.0,实现数据库云化管理。
环境准备
创建 VPC + VSwitch

ECS(两台)
推荐配置:2c,4g
搭载系统:centos7.9

RDS
购买rds
注意设置中交换机要和下面的使用的交换机一致
使用版本为rds mysql 5.7

创建数据库用户
普通用户即可
创建数据库
授权给上一步创建的用户,给予访问此数据库的权限

Redis
购买并创建redis
使用版本6.0,可用区选择单可用区

添加创建白名单
图中示例ip为实验使用,0.0.0.0/0公网可以直接访问,生产环境不可以这么做!交换机与之前相同。

设置白名单后

SLB
选择和之前相同的交换机

配置负载均衡器
使用三次握手tcp,监听端口80,添加两台ecs服务器

日志收集器sls

数据迁移
从本地终端导出数据到桌面

远程登录ecs01和ecs02

找到导出到桌面的ry-vue-export.sql文件,上传到/opt下。

嚯嚯嚯还有ai耍哦!

# 在 ECS-1 和ECS-2 上安装 MySQL 客户端
yum install -y mysql
mkdir -p /opt/ruoyi/logs# 在 ECS-1 上ECS-1 和ECS-2 上导入 RDS,rm-xxx.mysql.rds.aliyuncs.com是RDS MySql的内网地址
mysql -h rm-bp1r2ns5i5r06q548.mysql.rds.aliyuncs.com -u ruoyi -p ry-vue < /root/ry-vue-export.sql# 验证
mysql -h rm-bp1r2ns5i5r06q548.mysql.rds.aliyuncs.com -u ruoyi -p ry-vue -e "SHOW TABLES;"
# 结果:30张表
后端 jar 包配置
# 在ECS01和ECS02上进行
# 安装 JDK 1.8
yum install -y java-1.8.0-openjdk
# 验证
java -version

上传ruoyi-admin.jar到/opt/ruoyi目录下
yaml配置文件
vim application-druid.yml
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
master:
url: jdbc:mysql://rm-bp1r2ns5i5r06q548.mysql.rds.aliyuncs.com:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: ruoyi
password: 你的RDS密码
slave:
enabled: false
url:
username:
password:
initialSize: 5
minIdle: 10
maxActive: 20
maxWait: 60000
connectTimeout: 30000
socketTimeout: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
maxEvictableIdleTimeMillis: 900000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
allow:
url-pattern: /druid/*
login-username: ruoyi
login-password: 123456
filter:
stat:
enabled: true
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
vim application.yml
ruoyi:
name: RuoYi
version: 3.9.1
copyrightYear: 2026
profile: /opt/ruoyi/uploadPath
addressEnabled: false
captchaType: mathserver:
port: 8080
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
accept-count: 1000
threads:
max: 800
min-spare: 100logging:
level:
com.ruoyi: debug
org.springframework: warnuser:
password:
maxRetryCount: 5
lockTime: 10spring:
messages:
basename: i18n/messages
profiles:
active: druid
servlet:
multipart:
max-file-size: 10MB
max-request-size: 20MB
devtools:
restart:
enabled: true
redis:
host: r-bp1vdxj9vfadxiidqd.redis.rds.aliyuncs.com
port: 6379
database: 0
password: Root@123456
timeout: 10s
lettuce:
pool:
min-idle: 0
max-idle: 8
max-active: 8
max-wait: -1ms
token:
header: Authorization
secret: abcdefghijklmnopqrstuvwxyz
expireTime: 30mybatis:
typeAliasesPackage: com.ruoyi.**.domain
mapperLocations: classpath*:mapper/**/*Mapper.xml
configLocation: classpath:mybatis/mybatis-config.xmlpagehelper:
helperDialect: mysql
supportMethodsArguments: true
params: count=countSqlswagger:
enabled: true
pathMapping: /dev-apireferer:
enabled: false
allowed-domains: localhost,127.0.0.1,ruoyi.vip,www.ruoyi.vipxss:
enabled: true
excludes: /system/notice
urlPatterns: /system/*,/monitor/*,/tool/*
运行jar包
cd /opt/ruoyi
# 在ECS-1和ECS-2上运行 jar 包
java -jar ruoyi-admin.jar# 一般来说在同一目录下yaml文件会覆盖jar包的错误IP,如果覆盖不了就强制执行下面这个操作
java -jar ruoyi-admin.jar --spring.datasource.druid.master.url="jdbc:mysql://rm-bp1r2ns5i5r06q548.mysql.rds.aliyuncs.com:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8" --spring.datasource.druid.master.username="ruoyi" --spring.datasource.druid.master.password="Root@123456" --spring.datasource.type=com.alibaba.druid.pool.DruidDataSource# 让后端在后台持续运行
nohup java -jar ruoyi-admin.jar > /opt/ruoyi/logs/ruoyi.log 2>&1 &
curl http://localhost:8080
前端迁移
找到dist文件并导出到桌面
# 在 ECS01 和 ECS02 上操作
cd /opt/ruoyi/ruoyi-ui# 压缩 dist
zip -r dist.zip dist/

下载nginx
yum install -y nginx
# 启动 Nginx
systemctl start nginx
systemctl enable nginx# 复制dist到nginx下
cp -r dist /usr/share/nginx/html/# 验证
curl http://localhost:80
输出内容如下

配置nginx反向代理
cat > /etc/nginx/conf.d/ruoyi.conf << 'EOF'
server {
listen 80;
server_name _;
root /usr/share/nginx/html/dist;
index index.html index.htm;
location / {
try_files $uri $uri/ /index.html;
}
location /prod-api/ {
proxy_pass http://127.0.0.1:8080/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF# 测试配置
nginx -t# 重启 Nginx
systemctl restart nginx# 验证
在浏览器访问 SLB 公网 IP:http://120.26.253.116

高可用测试
slb负载均衡通过健康检查可在一台服务器吹西安问题可自动切换服务服务器。停止一台服务器验证功能正常。

再次访问

部署SLS
创建弹性公网IP
EIP 就是给服务器开通访问 SLS 公网域名的上网能力,日志才能发出去上报到 SLS

安装 Logtail
# 下载安装脚本
wget -T 10 -t 2 https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh -O logtail.sh# 安装
bash logtail.sh install auto# 启动 Logtail
/etc/init.d/ilogtaild start# 查看状态
/etc/init.d/ilogtaild status

在sls控制台配置采集

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐




所有评论(0)