将基于若依(RuoYi)开发的微信小程序部署到阿里云,需要从后端服务、前端小程序以及云资源配置等多个方面进行操作。以下是详细的部署步骤:
一、明确项目结构
若依(RuoYi)通常是一个前后端分离的 Java 后台管理系统,而你开发的微信小程序是前端部分,通过调用若依后端提供的 RESTful API 接口获取数据。
因此,部署主要包括:
- 若依后端服务(Spring Boot + MyBatis + Redis 等)
- 数据库(MySQL)
- 微信小程序前端代码(上传至微信平台,运行在微信客户端)
- 服务器部署环境(阿里云 ECS 或容器服务)
二、准备工作
1. 购买并配置阿里云资源
- ECS 云服务器:推荐 CentOS 7.x / Ubuntu 20.04,配置根据业务选择(如 2核4G起步)
- 云数据库 RDS(可选):用于托管 MySQL 数据库,更安全稳定
- 域名 + SSL 证书(可选但推荐):用于 HTTPS 访问(微信小程序要求接口必须 HTTPS)
- 备案(国内服务器需备案)
2. 开发准备
- 若依后端代码已适配微信小程序接口(CORS、用户登录逻辑等)
- 微信小程序使用
request请求后端 API,域名已加入小程序后台的「request 合法域名」
三、部署步骤
第一步:部署若依后端服务到阿里云 ECS
1. 登录 ECS 并安装基础环境
# 更新系统
sudo yum update -y # CentOS
# 或 sudo apt update && sudo apt upgrade -y # Ubuntu
# 安装 Java 8/11(若依通常用 Java 8)
sudo yum install java-1.8.0-openjdk -y
# 安装 Maven(用于打包)
sudo yum install maven -y
# 安装 MySQL 或连接 RDS
# 若使用本地 MySQL:
sudo yum install mysql-server -y
sudo systemctl start mysqld
sudo systemctl enable mysqld
⚠️ 建议使用阿里云 RDS MySQL 实例,更安全易管理。
2. 导入数据库
- 将若依的 SQL 文件导入到 MySQL(可通过 DMS 或命令行)
source /path/to/ry_2023xxxx.sql; - 修改
application.yml中的数据库连接信息(指向你的 RDS 或本地 MySQL)
3. 打包并运行若依后端
# 在本地或服务器上使用 Maven 打包
mvn clean package -Dmaven.test.skip=true
# 上传 jar 包到服务器(如 ruoyi-admin.jar)
scp ruoyi-admin.jar user@your-ecs-ip:/home/app/
# 后台运行 Spring Boot 项目
nohup java -jar ruoyi-admin.jar > app.log 2>&1 &
4. 配置 Nginx(可选,用于反向和 HTTPS)
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080; # 若依默认端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
5. 申请 SSL 证书并启用 HTTPS
-
在阿里云控制台申请免费 SSL 证书(CA证书服务)
-
配置 Nginx 支持 HTTPS:
server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/nginx/cert/yourdomain.pem; ssl_certificate_key /etc/nginx/cert/yourdomain.key; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; } }
✅ 微信小程序要求所有网络请求必须使用 HTTPS 协议!
第二步:配置微信小程序
1. 修改小程序 request 请求地址
确保 app.js 或 API 配置中使用 HTTPS 地址:
wx.request({
url: 'https://yourdomain.com/api/user/info',
// ...
})
2. 在微信公众平台配置合法域名
进入 微信公众平台 → 开发管理 → 开发设置 → 服务器域名
- 添加
request合法域名:https://yourdomain.com
❗ 不支持 IP 地址,必须是备案域名 + HTTPS
3. 用户登录逻辑调整(可选)
若使用微信登录,确保后端实现了:
- 调用微信
code2Session接口(在后端完成,不可在小程序前端直接调) - 生成自定义登录态(token),返回给小程序
第三步:启动与测试
- 启动后端服务(检查日志是否正常)
- 使用 Postman 测试 API 是否可访问(如
https://yourdomain.com/api/login) - 运行微信小程序开发者工具,测试功能是否正常
- 提交审核并发布小程序
四、优化建议
| 项目 | 建议 |
|---|---|
| 服务器 | 使用阿里云 ECS + RDS + Redis(缓存) |
| 安全 | 配置安全组(只开放 80/443/22 端口),避免暴露 8080 |
| 监控 | 使用阿里云云监控或宝塔面板 |
| 自动化部署 | 可结合 Jenkins / GitHub Actions / Docker |
| 备份 | 定期备份数据库和代码 |
五、常见问题排查
| 问题 | 解决方案 |
|---|---|
| 小程序提示 “request:fail” | 检查域名是否 HTTPS、是否在合法域名列表 |
| 后端无法连接数据库 | 检查 RDS 白名单是否包含 ECS IP |
| 接口返回 404 | 检查 Nginx 配置或 Spring Boot 上下文路径 |
| 登录失败 | 检查后端是否正确处理 wx.login 的 code |
六、可选:使用 Docker 部署(更高效)
# 示例 docker-compose.yml
version: '3'
services:
ruoyi:
image: openjdk:8-jre
ports:
- "8080:8080"
volumes:
- ./ruoyi-admin.jar:/app.jar
command: java -jar /app.jar
depends_on:
- mysql
mysql:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: yourpassword
总结
部署流程总结如下:
- 准备阿里云 ECS + RDS + 域名 + SSL
- 部署若依后端(Java + MySQL)
- 配置 Nginx + HTTPS
- 修改小程序请求地址为 HTTPS 域名
- 在微信后台配置合法域名
- 测试并上线
如果你使用的是 若依前后端分离版本(Vue + Spring Boot),上述流程依然适用,只是前端部署在 Nginx 静态服务或 CDN,而小程序是独立发布的。
如有具体技术栈(如是否使用 Redis、OSS、Nacos 等),可进一步细化部署方案。欢迎补充细节继续提问!
CLOUD技术笔记