将微信小程序部署到云服务器是一个常见的需求,尤其是当你希望拥有更高的性能、灵活性和可扩展性时。下面是详细的步骤指南:
一、准备工作
1. 注册微信小程序账号
- 访问 微信公众平台
- 注册小程序账号并完成认证(个人或企业均可)
2. 准备云服务器
- 可以选择阿里云、腾讯云、华为云等主流云服务商
- 推荐配置:CentOS/Ubuntu 系统 + Nginx + Node.js 或 PHP 环境(根据后端语言)
- 域名备案(国内服务器必须备案)
3. 域名备案
- 微信小程序要求所有请求的域名都必须备案,并且添加到白名单中
- 在云服务商控制台进行备案操作
二、部署流程详解
步骤 1:开发后端服务
后端可以选择:
- Node.js(Express/Koa/NestJS)
- Java(Spring Boot)
- Python(Django/Flask/FastAPI)
- PHP(ThinkPHP/Laravel)
确保接口支持跨域访问、HTTPS 协议
步骤 2:将后端部署到云服务器
示例:Node.js + Express 项目部署
# 登录服务器
ssh root@your_server_ip
# 安装 Node.js
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
# 上传代码(使用 git 或 scp)
git clone https://github.com/yourname/yourproject.git
# 安装依赖并启动服务
cd yourproject
npm install
npm run start
使用
pm2管理进程更稳定:npm install pm2 -g pm2 start app.js --watch
步骤 3:配置 Nginx 反向X_X(可选)
server {
listen 80;
server_name api.yourdomain.com;
location / {
proxy_pass http://localhost:3000; # Node.js 服务地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
步骤 4:配置 HTTPS(必须)
-
使用 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -
配置成功后,Nginx 会自动启用 HTTPS
步骤 5:配置微信小程序后台域名白名单
登录微信公众平台 → 开发管理 → 开发设置 → 服务器设置
添加以下域名:
- request合法域名(你的后端 API 地址)
- uploadFile合法域名
- downloadFile合法域名
- websocket合法域名(如需)
注意:必须是 HTTPS 且已备案的域名
步骤 6:修改小程序请求地址为自己的服务器地址
在小程序项目的 config.js 或 utils/request.js 中修改请求地址为你的域名:
const baseUrl = 'https://api.yourdomain.com'
步骤 7:上传小程序代码
使用开发者工具点击【上传】按钮,填写版本信息。
步骤 8:审核发布
登录微信公众平台,在【版本管理】中提交审核,等待通过后即可上线。
三、常见问题排查
| 问题 | 解决方法 |
|---|---|
| 请求被拦截 | 检查域名是否加入白名单,是否启用 HTTPS |
| 页面空白 | 查看控制台报错,检查网络请求是否成功 |
| 接口无法访问 | 检查服务器防火墙、端口是否开放 |
| 跨域问题 | 设置合适的 CORS 头部(如 Access-Control-Allow-Origin) |
四、推荐工具
- PM2:Node.js 进程管理器
- Let’s Encrypt:免费 SSL 证书
- Postman:接口调试工具
- VSCode Remote SSH:远程开发神器
五、总结
| 步骤 | 内容 |
|---|---|
| 1 | 准备好服务器环境 |
| 2 | 部署后端服务 |
| 3 | 配置 Nginx 和 HTTPS |
| 4 | 设置微信域名白名单 |
| 5 | 修改小程序请求地址 |
| 6 | 上传并发布小程序 |
如果你有具体的后端技术栈(比如用的是 Spring Boot、Express、还是 Django),我可以提供更针对性的部署教程。
需要我帮你写一个完整的部署脚本或者示例项目结构吗?
云知识