基于若依(RuoYi)框架开发的微信小程序部署到阿里云,本质上是一个“前后端分离”架构的云端落地过程。若依通常提供 Vue 前端和 Spring Boot/Cloud 后端,而微信小程序需要独立的域名、HTTPS 证书以及稳定的云环境支撑。
以下是将若依项目完整迁移至阿里云的核心步骤与关键技术点:
一、前期准备与环境规划
在动手之前,需明确资源规划。若依系统对数据库、缓存和计算资源有明确要求。
- 账号与备案:确保拥有阿里云账号。若后端服务部署在国内节点(如杭州、北京),必须完成ICP 备案。小程序接口调用强制要求 HTTPS,且域名必须已备案,否则无法通过微信审核或运行时报错。
- 域名解析:购买并配置一个主域名(例如
api.example.com)。在阿里云 DNS 控制台将该域名 A 记录指向即将创建的云服务器公网 IP。 - SSL 证书:在阿里云 SSL 证书控制台申请免费或付费的 DV 证书。微信小程序强制要求 HTTPS,且证书必须受信任。
二、后端服务部署(Spring Boot/Cloud)
若依后端通常采用 Maven 构建,建议采用容器化(Docker)或传统虚拟机部署两种方式,推荐 Docker 以获得更好的隔离性和弹性。
方案 A:使用 ECS + Docker(推荐,灵活可控)
- 创建实例:在阿里云 ECS 控制台购买一台 CentOS 7/8 或 Ubuntu 服务器。根据若依并发量选择配置(建议至少 2 核 4G,生产环境建议 4 核 8G 以上)。
- 安装基础环境:
- 安装 JDK 1.8 或 11(视若依版本而定)。
- 安装 MySQL 5.7+ 或 8.0。若依对字符集(utf8mb4)和时区有特定要求,初始化时需配置
character-set-server=utf8mb4。 - 安装 Redis(若依依赖 Redis 做缓存和分布式 Session)。
- 代码迁移:
- 将本地若依后端代码上传至服务器(使用 Git 拉取或 SCP 传输)。
- 修改
application.yml配置文件:- 数据库连接地址改为 ECS 内网 IP(若 Redis/MySQL 也在同一 ECS)或阿里云 RDS 的内网地址。
- Redis 地址同样修正。
- 关键配置:设置
spring.datasource.url等参数,并确保server.port正确。
- 编译打包:执行
mvn clean package -DskipTests生成.jar包。 - 启动服务:使用
nohup java -jar ruoyi-admin.jar --spring.profiles.active=prod &后台启动。 - 安全组放行:在阿里云 ECS 安全组中,仅开放必要的端口(如 8080 业务端口,严禁直接开放 3306/6379 给公网,应通过内网访问)。
方案 B:使用云原生产品(更省心)
- 应用服务 (SAE):适合希望免运维的用户。直接将 Jar 包上传至 SAE,自动处理负载均衡和扩缩容。
- 云数据库 RDS:强烈建议将数据库从 ECS 迁移至阿里云 RDS 服务,避免数据丢失风险,提升高可用能力。
- 云缓存 Redis:使用云数据库 Redis 版替代自建 Redis,稳定性更高。
三、前端服务部署(Vue)
若依的前端是静态资源,无需复杂运行时环境,直接托管在对象存储或轻量级 Web 服务器上即可。
- 构建产物:在本地开发环境执行
npm run build:prod,生成dist目录下的静态文件。 - 部署方式选择:
- Nginx 方案(经典):在另一台 ECS 上安装 Nginx,将
dist目录内容放入/usr/share/nginx/html,配置server_name为小程序域名,开启 Gzip 压缩。 - OSS + CDN 方案(高性能):将
dist目录上传至阿里云 OSS Bucket,并在前端代码中将 API 请求地址指向后端域名。配置 CDN 提速该 OSS 站点,可大幅降低首屏加载时间。
- Nginx 方案(经典):在另一台 ECS 上安装 Nginx,将
- 跨域处理:若前端和后端不在同一域名下,需在 Nginx 或后端 Spring Boot 中配置 CORS(Cross-Origin Resource Sharing),允许小程序域名访问。
四、微信小程序配置与上线
这是最容易出错的环节,必须严格匹配。
- 修改小程序代码:
- 打开
manifest.json或网络请求配置文件(通常在src/utils/request.js或config/index.js)。 - 将
requestBaseURL修改为阿里云分配的公网域名(如https://api.example.com)。 - 注意:此处必须是 HTTPS 协议,且域名不能包含 IP 地址。
- 打开
- 微信公众平台配置:
- 登录 微信公众平台。
- 进入“开发管理” -> “开发设置”。
- 配置 服务器域名:
- request 合法域名:填入你的后端域名(如
https://api.example.com)。 - uploadFile/downloadFile 合法域名:同上。
- request 合法域名:填入你的后端域名(如
- 提交审核前,确保域名已在 ICP 备案系统中生效。
- 上传代码:使用微信开发者工具连接阿里云上的 Nginx/OSS 预览,确认无报错后,点击“上传”并提交审核。
五、运维监控与安全加固
部署完成并非结束,生产环境需持续维护。
- WAF 防护:若依系统存在 SQL 注入、XSS 等常见漏洞风险。建议在阿里云 WAF(Web 应用防火墙)层面对域名进行防护,开启防爬虫和防攻击策略。
- 日志审计:开启阿里云云监控,监控 CPU、内存及磁盘 IO。对于后端日志,建议接入 SLS(日志服务)进行集中采集和分析,排查线上问题。
- 备份策略:
- 数据库:开启 RDS 自动备份或手动创建快照。
- 代码:保留 Git 仓库历史版本。
- HTTPS 强制跳转:在 Nginx 中配置 HTTP 自动跳转到 HTTPS,防止中间人攻击。
总结
整个流程的核心在于:域名备案合规性、HTTPS 证书配置以及前后端域名的正确映射。若依框架本身逻辑成熟,关键在于将其组件化地拆解到阿里云的各个服务单元(ECS/RDS/OSS/SLS)中,并通过 Nginx 或 CDN 进行流量调度。务必在生产环境关闭调试模式(debug=false),并严格限制安全组端口,确保系统安全。
CLOUD云枢