阿里云项目迁移:若依项目从本地迁到阿里云上

发布时间:2026/10/29 20:01:02

阿里云项目迁移:若依项目从本地迁到阿里云上 文章目录一、阿里云的概念1.1 什么是阿里云1.2 为什么要进行数据迁移1.2.1 本地部署的痛点1.2.2 上云迁移的优势二、云上架构图三、迁移步骤3.1 资源清单3.2 创建 VPC 和交换机3.3 购买 ECS2台3.4 安全组配置3.5 购买 RDS MySQL3.6 购买云 RedisTair3.7 购买 SLB3.8 购买SLS3.9 获取RDS mysql 的内网地址和Redis 的内网地址3.9.1 获取RDS mysql 的内网地址3.9.2 获取Redis 的内网地址3.10 数据迁移SQL 导入3.10.1 在RDS MySQL中先创建库和账号3.10.2 创建了数据库然后在本地终端上进行数据导出3.10.3 上传到 ECS-13.11 后端 jar 包配置与运行3.11.1 在本地虚拟机从镜像中提取 jar 包3.11.2 安装JDK 1.83.11.3 application-druid.yml文件3.11.4 application.yml 文件3.11.5 运行 jar 包3.12 前端迁移3.12.1 在本地虚拟机上找到dist文件3.12.2 上传到 ECS-1和ECS-2后解压3.12.3 在 ECS-1 和 ECS-2 上安装 Nginx3.12.4 配置 Nginx 反向代理3.13 测试高可用3.14 安装 Logtail 采集日志到 SLS3.14.1 创建弹性公网IP3.14.2 安装 Logtail3.14.3 在 SLS 控制台配置采集四、迁移过程中出现的问题一、阿里云的概念1.1 什么是阿里云阿里云Alibaba Cloud是阿里巴巴集团旗下的云计算服务平台成立于2009年是全球领先的云计算及人工智能科技公司之一。阿里云提供包括弹性计算、数据库、存储、网络、安全、大数据、人工智能等在内的全方位云服务服务范围覆盖全球200多个国家和地区。1.2 为什么要进行数据迁移1.2.1 本地部署的痛点痛点说明硬件成本高需要购买服务器、交换机、防火墙等硬件设备前期投入大运维复杂需要专业的运维团队负责服务器、网络、数据库的日常维护扩展性差业务增长时需要采购新硬件周期长、成本高高可用难保障单点故障风险高灾备方案复杂且昂贵安全防护弱需要自行应对DDoS攻击、数据泄露等安全威胁1.2.2 上云迁移的优势优势说明按量付费无需一次性投入硬件成本按需使用、按量付费高可用云平台提供SLB、RDS主备、多可用区等原生高可用能力弹性扩展支持随时升降配从容应对业务流量变化运维简化RDS、Redis等托管服务免去日常运维工作安全合规云平台提供DDoS防护、WAF、数据加密等安全能力日志服务SLS日志服务替代传统ELK免运维、低成本二、云上架构图三、迁移步骤3.1 资源清单资源名称规格内网地址/公网IPVPCruoyi-vpc10.0.0.0/16-交换机 Aruoyi-switch-a10.0.1.0/24可用区B交换机 Bruoyi-switch-b10.0.2.0/24可用区HECS-1ruoyi-ecs-012核4G CentOS 7.910.0.1.15ECS-2ruoyi-ecs-022核4G CentOS 7.910.0.2.101RDSruoyi-mysqlMySQL 5.7 2核4Grm-xxx.mysql.rds.aliyuncs.comRedisruoyi-redisRedis 6.0 1GBr-xxx.redis.rds.aliyuncs.comSLBruoyi-slb公网型 HTTP:80218.244.145.10SLSruoyi-logs-0829日志存储30天-3.2 创建 VPC 和交换机在阿里云中找到vpc进行以下操作这里是一个vpc下有两个交换机3.3 购买 ECS2台这里以一台为例购买两台2C4G的ECS第二台ECS是把交换机这一个换了3.4 安全组配置此操作是为了将两个ECS放到同一个安全组中添加规则将两个实例添加到新建的安全组中在创建vpc时会自动创建安全组自动创建的不删除3.5 购买 RDS MySQL这个只买一个就可以3.6 购买云 RedisTairredis也只要购买一个3.7 购买 SLB只买一个3.8 购买SLS开通后创建这里选择取消不接入数据3.9 获取RDS mysql 的内网地址和Redis 的内网地址3.9.1 获取RDS mysql 的内网地址在 RDS 详情页点击左侧菜单 “数据库连接” 或 “连接管理”3.9.2 获取Redis 的内网地址设置白名单3.10 数据迁移SQL 导入3.10.1 在RDS MySQL中先创建库和账号3.10.2 创建了数据库然后在本地终端上进行数据导出# 本地导出 SQLdockerexecmysql.server mysqldump-uroot-p123456\--default-character-setutf8mb4\--single-transaction\--set-gtid-purgedOFF\--no-create-db ry-vue/opt/ruoyi/sql/ry-vue-export.sql3.10.3 上传到 ECS-1在ruoyi文件里的sql找到ry-vue-export.sql将其放在电脑桌面上然后远程连接实例将数据上传到/opt目录下在左边有个文件点击文件然后双击/opt下的ruoyi目录。即可看到上传文件# 上传到 ECS-1通过 Workbench# 在 ECS-1 上导入 RDSrm-xxx.mysql.rds.aliyuncs.com是RDS MySql 的内网地址mysql-hrm-bp1064d028w406i06.mysql.rds.aliyuncs.com-uruoyi-pry-vue/root/ry-vue-export.sql# 验证mysql-hrm-xxx.mysql.rds.aliyuncs.com-uruoyi-pry-vue-eSHOW TABLES;# 结果30张表3.11 后端 jar 包配置与运行在ECS-1和ECS-2上进行3.11.1 在本地虚拟机从镜像中提取 jar 包# 从 Docker 镜像中复制 jar 包出来dockerrun--rmruoyi-admin:1.0cat/opt/ruoyi-admin.jar/tmp/ruoyi-admin.jar# 确认文件存在并将其放在桌面上ls-lh/tmp/ruoyi-admin.jar# 上传 /tmp/ruoyi-admin.jar 到 ECS-1 的 /opt3.11.2 安装JDK 1.8# 安装 JDK 1.8yuminstall-yjava-1.8.0-openjdk# 验证java-version3.11.3 application-druid.yml文件vimapplication-druid.yml# 数据源配置spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: master: url: jdbc:mysql://RDS MySql 的内网地址:3306/ry-vue?useUnicodetruecharacterEncodingutf8zeroDateTimeBehaviorconvertToNulluseSSLtrueserverTimezoneGMT%2B8 username: ruoyi password: 你的RDS密码 slave: enabled:falseurl: username: password: initialSize:5minIdle:10maxActive:20maxWait:60000connectTimeout:30000socketTimeout:60000timeBetweenEvictionRunsMillis:60000minEvictableIdleTimeMillis:300000maxEvictableIdleTimeMillis:900000validationQuery: SELECT1FROM DUAL testWhileIdle:truetestOnBorrow:falsetestOnReturn:falsewebStatFilter: enabled:truestatViewServlet: enabled:trueallow: url-pattern: /druid/* login-username: ruoyi login-password:123456filter: stat: enabled:truelog-slow-sql:trueslow-sql-millis:1000merge-sql:truewall: config: multi-statement-allow:true3.11.4 application.yml 文件vimapplication.yml ruoyi: name: RuoYi version:3.9.1 copyrightYear:2026profile: /opt/ruoyi/uploadPath addressEnabled:falsecaptchaType: math server: port:8080servlet: context-path: / tomcat: uri-encoding: UTF-8 accept-count:1000threads: max:800min-spare:100logging: level: com.ruoyi: debug org.springframework: warn user: password: maxRetryCount:5lockTime:10spring: messages: basename: i18n/messages profiles: active: druid servlet: multipart: max-file-size: 10MB max-request-size: 20MB devtools: restart: enabled:trueredis: host: redis内网地址 port:6379database:0password: 你的Redis密码 timeout: 10s lettuce: pool: min-idle:0max-idle:8max-active:8max-wait:-1mstoken: header: Authorization secret: abcdefghijklmnopqrstuvwxyz expireTime:30mybatis: typeAliasesPackage: com.ruoyi.**.domain mapperLocations: classpath*:mapper/**/*Mapper.xml configLocation: classpath:mybatis/mybatis-config.xml pagehelper: helperDialect: mysql supportMethodsArguments:trueparams:countcountSql swagger: enabled:truepathMapping: /dev-api referer: enabled:falseallowed-domains: localhost,127.0.0.1,ruoyi.vip,www.ruoyi.vip xss: enabled:trueexcludes: /system/notice urlPatterns: /system/*,/monitor/*,/tool/*3.11.5 运行 jar 包cd/opt/ruoyi# 在ECS-1和ECS-2上运行 jar 包java-jarruoyi-admin.jar# 让后端在后台持续运行nohupjava-jarruoyi-admin.jar/opt/ruoyi/logs/ruoyi.log21curlhttp://localhost:8080# 返回欢迎使用Ruoyi后台管理框架当前版本v3.9.13.12 前端迁移3.12.1 在本地虚拟机上找到dist文件cd/path/to/ruoyi-ui# 安装依赖如果 node_modules 不存在npminstall# 打包生产环境npmrun build:prod# 压缩 distzip-rdist.zip dist/3.12.2 上传到 ECS-1和ECS-2后解压cd/opt/ruoyiunzip-odist.zipcp-rdist /usr/share/nginx/html/3.12.3 在 ECS-1 和 ECS-2 上安装 Nginxyuminstall-ynginx# 启动 Nginxsystemctl start nginx systemctlenablenginx# 验证curlhttp://localhost:803.12.4 配置 Nginx 反向代理cat/etc/nginx/conf.d/ruoyi.confEOF 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# 重启 Nginxsystemctl restart nginx# 验证在浏览器访问 SLB 公网 IPhttp://218.244.145.103.13 测试高可用停止 ECS-1然后再次访问SLB 公网 http://218.244.145.103.14 安装 Logtail 采集日志到 SLS3.14.1 创建弹性公网IP在ECS实例这一块的基础信息里有一个弹性公网ip创建弹性公网ip这里需要绑定实例3.14.2 安装 Logtail# 下载安装脚本wget-T10-t2https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/linux64/logtail.sh-Ologtail.sh# 安装bashlogtail.shinstallauto# 启动 Logtail/etc/init.d/ilogtaild start# 查看状态/etc/init.d/ilogtaild status3.14.3 在 SLS 控制台配置采集进入 SLS 控制台 → 选择 Project ruoyi-logs-0829把ruoyi-ecs-group作为应用机器组完成后等待一会就可以看到日志了四、迁移过程中出现的问题问题原因解决方案RDS 连接失败本地虚拟机不在 VPC 网段通过 ECS 中转导入 SQLLogtail 无法下载ECS 无公网 IP临时绑定弹性 IP装完释放RDS 白名单未配置忘记添加 ECS IP添加 10.0.1.15, 10.0.2.101
延伸阅读

更多相关文章

2026/10/28 14:54:52

C#实现发那科机器人二次开发:Socket通信与点位读写实战

简介:本资源是一套面向工业自动化工程师与机器人开发者的发那科(FANUC)机器人C#二次开发实践项目,聚焦于核心数据交互能力——通过C#调用官方SDK实现机器人点位信息的实时读取与控制参数写入,适用于汽车制造、电子装配…

2026/10/28 21:18:11

Claude Code多智能体协作:终端AI编程实践指南

这次我们不聊图像生成,也不聊本地大模型推理,而是看一个纯工程侧的 AI 编程工具:Anthropic 出品的 Claude Code,以及怎么基于它搭出一个小型多智能体协作流程。简单说,Claude Code 是跑在终端里的 AI 编程助手。它不是…

2026/10/28 0:52:32

基于STM32的超声波风速风向测量仪:从硬件到算法的完整工程复盘

简介:这是一套面向嵌入式初学者与课程设计者的STM32超声波风速风向测量仪完整开发资料,解决气象参数低成本、非接触式实时采集的技术实现问题,适用于电子设计竞赛、毕业设计及物联网传感节点开发场景。资源包共405个文件,涵盖114个…

2026/10/29 19:58:52

数据库内核手记 05:B+ 树(下)——删除、迭代器与并发控制

上一篇中,我们从根到叶查找,再通过向上传播的分裂完成插入。现在继续回答三个问题: 删除后节点太空,怎么办?范围查询怎样跨越多个叶子?一个线程正在修改结构,另一个线程怎样安全经过这里&#…

2026/10/29 19:58:52

多相机GigE Vision:触发与图像网段怎么分?

多相机GigE Vision系统里,“触发信号和图像数据走同一网段还是分离”这个问题,容易让人一开始就往“网络冲突”上想。但GigE Vision协议本身已经把这两件事分得很清楚了:GVCP(控制协议)管配置和触发,走UDP …

2026/10/29 19:58:52

pi coding agent CLI 深度解析:Agent Loop、TUI 与 LLM API 实战

1. 从“pi”这个标题说起:一个极简命名背后的技术野心第一次看到“pi”这个项目标题,很多人会本能地联想到圆周率、树莓派,或者某个数学常数。但如果你最近在开发者社区里泡过,尤其是关注 LLM 应用和命令行工具的那批人&#xff0…

2026/10/29 19:58:52

OpenShell不是终端而是Windows桌面UI增强框架

1. OpenShell 不是“开源 Shell”,而是 Windows 上一个被严重误读的轻量级终端替代方案最近在几个技术社区里频繁看到“OpenShell”这个词,有人把它当成 Linux 下的某个新 shell(比如 zsh 或 fish 的变种),有人以为它是…

2026/10/29 19:53:50

(已解决)关于fpga的时序收敛问题记录

问题记录 1、Axi stream或者Axi Lite和逻辑通信时,因时钟时序不匹配,造成时序不收敛。 2、从别处考来的工程中,自带使用set_clock_groups -asynchronous组时,-of objects[get pins U_xxxx/xxxx…]&#xff…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/29 0:03:42

学生选课系统DFD图绘制指南:边界划分与分层校验实战

简介:文档以顶层与第一层DFD图为核心,完整刻画学生选课系统的逻辑模型,面向软件工程课程设计、系统分析学习及毕设前期建模人群。顶层图界定系统边界,外部实体包括管理员、教师和学生三类角色;第一层图进一步细化用户登…

2026/10/29 0:03:42

JIRA敏捷落地:Scrum角色权限、Sprint与燃尽图避坑指南

简介:围绕“基于JIRA的敏捷开发项目管理”这一主题,面向产品负责人、Scrum Master及研发测试成员,梳理Scrum角色分工、迭代流程与JIRA工具配置的对应关系,适合初、中级团队导入敏捷管理时参考。压缩包共1个docx文件,大…

2026/10/29 0:03:42

SEMI S8人机工程验收实战:从条款拆解到现场实测的完整指南

简介:面向半导体设备设计、制造与运维工程师及安全合规人员,这份资料聚焦SEMI标准体系下的设备安全规范,重点收录SEMI S8-0308《半导体制造设备人体工程学工程安全指南》。内容围绕设备设计原则、错误与事故预防、人体工程学适配三大主线展开…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑