阿里云实战——若依项目的迁移

发布时间:2026/8/31 15:55:38
阿里云实战——若依项目的迁移 目录一、前置准备1.1 架构图1.2 后端源码配置1.3 前端二、购买资源2.1 创建 VPC VSwitch2.2 ECS 部署2台2.3 RDS MySQL2.4 云 Redis2.5 SLB 负载均衡2.6 SLS 日志服务三、网络安全组3.1 ECS 安全组3.2 RDS 白名单3.3 云 Redis 白名单四、初始化 RDS4.1 创建账号4.2 创建数据库4.3 导入数据库五、初始化 ECS15.1 装基础软件5.2 上传文件5.3 部署前端nginx5.4 启动后端5.5 单机自检5.6 初始化 ECS2六、配置 SLB6.1 创建后端服务器6.2 配置监听6.3 验证七、配置 SLS 日志7.1 两台 ECS 均安装 Logtail7.2 控制台配置采集八、问题解析8.1 后端源码8.2 SCP报错8.3 配置SLS时报错一、前置准备1.1 架构图1.2 后端源码配置# 修改配置文件并重新打包 vim /opt/ruoyi/ruoyi-admin/src/main/resources/application.yml vim /opt/ruoyi/ruoyi-admin/src/main/resources/application-druid.yml # # 启动maven镜像 docker run -it --rm -v /opt/ruoyi/:/vue maven:3.6.3-openjdk-11 /bin/bash # 进入/vue目录进行mvn命令打jar包 mvn package # 退出maven容器将ruoyi-admin.jar移到/ruoyi下 mv ruoyi-admin/target/ruoyi-admin.jar /opt/ruoyi/java/1.3 前端# 启动node镜像 docker run -itd --rm -v /opt/ruoyi/ruoyi-ui:/opt node:12 /bin/bash # 进入node容器的/opt目录下打包前端代码 docker exec -it zen_bhaskara bash名字可能不一样docker ps查看一下node的名字 cd /opt npm install 安装 npm run build:prod二、购买资源2.1 创建 VPC VSwitch配置项参数VPC 名称ruoyi‑vpcVPC 网段172.16.0.0/16交换机ruoyi‑vswitch‑az1网段172.16.0.0/24地域华东 1杭州2.2 ECS 部署2台配置项参数值付费方式按量付费实例规格2vCPU 4GB镜像CentOS7.9 64 位系统盘40GB ESSD EntryVPCruoyi‑vpc交换机ruoyi‑vswitch公网 IP分配公网 IP安全组入方向放行端口22、443、3306、3389、8080看3.1设置安全组其他设置 root 登录密码记录 ECS 公网 IP、内网 IP2.3 RDS MySQL配置项参数值付费方式按量付费数据库版本MySQL5.7实例系列基础版实例规格1 核 2GB存储20GB SSDVPCruoyi‑vpc交换机ruoyi‑vswitch2.4 云 Redis配置项参数值付费方式按量付费实例版本Redis 7.0实例类型标准版主从内存规格1GB实训够用地域华东 1杭州专有网络 VPCruoyi‑vpc和 ECS、RDS 同一个 VPC虚拟交换机ruoyi‑vswitch公网连接关闭实例密码Redis123456自己记住输出记录复制保存Redis 内网连接地址端口固定 63792.5 SLB 负载均衡配置项选择计费按量付费地域华东 1杭州实例类型公网会自动分配一个公网 IP即用户访问入口SLB公网IP规格性能保障型最小规格2.6 SLS 日志服务三、网络安全组3.1 ECS 安全组协议端口授权对象说明TCP22本机的公网 IP/32查询方法百度搜我的IPSSH 运维别开 0.0.0.0/0TCP800.0.0.0/0给 SLB 转发 健康检查TCP4430.0.0.0/0预留 HTTPSTCP8080VPC 网段如 172.16.0.0/12控制台能选后端仅内网可访问3.2 RDS 白名单3.3 云 Redis 白名单四、初始化 RDS4.1 创建账号4.2 创建数据库4.3 导入数据库注需要等 ECS 里面安装好 MySQL 后执行。# 1.本地Docker主机导出SQL本地终端执行 docker exec mysql.server mysqldump -uroot -p123456 \ --default-character-setutf8mb4 \ --single-transaction \ --set-gtid-purgedOFF \ --no-create-db ry-vue /tmp/ry-vue.sql # 2.本地设置密钥权限上传sql到ECS chmod 600 /root/miyao.pem scp -i /root/miyao.pem /tmp/ry-vue.sql root47.110.232.68:/tmp/ # 3.登录ECS ssh -i /root/miyao.pem root47.110.232.68 # ECS机器内部执行 # 连接【阿里云RDS内网地址】导入不是本机mysql # 把RDS_HOST替换成你的RDS内网地址RDS_USER替换RDS账号 mysql -h rm-bp1mcf46rn99j84uv.mysql.rds.aliyuncs.com -u ruoyi -pRuoYi123 -e SELECT COUNT(*) FROM information_schema.tables WHERE table_schemary-vue; SELECT user_name FROM \ry-vue\.sys_user;五、初始化 ECS15.1 装基础软件# 关掉系统防火墙端口管控交给安全组避免双重拦截 systemctl stop firewalld systemctl disable firewalld # Nginx JDK8 mysql 客户端 yum install -y epel-release yum install -y nginx java-1.8.0-openjdk java-1.8.0-openjdk-devel mariadb vim wget systemctl enable nginx # 关键允许 Nginx 反代后端 8080本地部署时踩过 SELinux 这个坑 setsebool -P httpd_can_network_connect 15.2 上传文件# 在ecs1创建目录 mkdir -p /opt/ruoyi/logs /usr/share/nginx/html /opt/ruoyi/java # 在宿主机上传物料 cd /opt/ruoyi/ # 找到 docker 部署 ruoyi 时的 .jar 包和 dist 目录将其上传到 ecs1 # 本地机器密钥设置权限本地执行 chmod 600 /root/miyao.pem # 上传jar包到ECS /opt/ruoyi/java scp -i /root/miyao.pem /opt/ruoyi/java/ruoyi-admin.jar root47.110.232.68:/opt/ruoyi/java/ # 上传dist前端目录-r放最后传到nginx网页根目录 scp -i /root/miyao.pem -r /opt/ruoyi/ruoyi-ui/dist/* root47.110.232.68:/usr/share/nginx/html/5.3 部署前端nginx# 在 ECS1 上配置 nginx.conf 文件 vim /etc/nginx/conf.d/nginx.conf server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html; 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; } } # 验证是否有错误 nginx -t # 重载nginx systemctl restart nginx5.4 启动后端# 后台启动若依后端 nohup java -jar /opt/ruoyi/java/ruoyi-admin.jar /opt/ruoyi/logs/ruoyi.log 21 # 查看日志看是否启动成功 tail -f /opt/ruoyi/logs/ruoyi.log5.5 单机自检# 后端起来了8080 在监听 netstat -lntp | grep 8080 # 验证码接口直连 200 curl -i http://127.0.0.1:8080/captchaImage # 走 Nginx 也 200前端页面 反代都通 curl -I http://127.0.0.1/ curl -i http://127.0.0.1/prod-api/captchaImage5.6 初始化 ECS2操作步骤与初始化 ECS1相同只需要修改一下上传ECS的IP即可。六、配置 SLB6.1 创建后端服务器6.2 配置监听6.3 验证# 验证 curl -I http://SLB公网IP/ # 期待 200 curl -I http://121.40.214.114 curl -i http://SLB公网IP/prod-api/captchaImage # 期待 200 JSON curl -i http://121.40.214.114/prod-api/captchaImage # 浏览器访问 http://SLB公网IP七、配置 SLS 日志7.1 两台 ECS 均安装 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 status7.2 控制台配置采集采集配置名Logstore日志路径设置Nginx‑文本日志nginx-log日志路径/var/log/nginx文件名*.logaccess 和 error 一起收单行-文本日志ruoyi-app日志路径/home/ruoyi/logs文件名*.logsys-info/sys-error/sys-user 全收八、问题解析8.1 后端源码问题在初始化 ECS 时若依前端无法启动原因后端源码配置错误修改修改 application-druid.yml/application.yml 这两个配置文件将 host 分别改为 RDS 和 tair的地址同时又因为部署使用的是 redis7所以 application.yml 文件中需要加上 tair 的用户名和密码。8.2 SCP报错问题scp时报错 Connection refused原因scp 使用的方法不对修改因为部署 ECS 时使用使用的是 密钥对所以得将 密钥对 上传到宿主机在 scp 时需要加入密钥对上传。8.3 配置SLS时报错问题在配置控制台采集时报错原因Logtail 安装失败解决使用另一个安装脚本重新安装。