很多朋友在写完小程序前端代码后,都会卡在“怎么把小程序放到云服务器上跑起来”这一步:服务器买哪种?系统怎么选?代码怎么传?接口怎么配?域名和证书怎么弄?
这篇文章就用“从零部署一个 Node.js + MySQL 小程序后台”的真实流程,把这些坑一次性讲清楚。你可以跟着一步步操作,也可以把文中的配置换成你自己的项目。
一、整体流程概览
一个标准的小程序云服务器部署流程大致如下:
- 准备云服务器和域名(本文以 Linux 云服务器为例)。
- 在云服务器上安装运行环境(Node.js、数据库等)。
- 将小程序后端代码上传到服务器并启动。
- 在微信小程序后台配置服务器域名,并真机测试。
- 确认功能正常后,提交审核并正式上线。
只要按这个顺序走,大部分“部署不了”的问题都能解决。
二、准备云服务器和域名
1. 云服务器配置思路
小程序的后端接口、数据库都跑在云服务器上,所以服务器配置要提前想好:
- CPU 和内存:刚上线、访问量不大的项目,1 核 2GB 基本够用;如果后台逻辑复杂或并发高,可以考虑 2 核 4GB 或更高。
- 带宽:普通业务 3~5Mbps 一般够用,图片、视频多的场景可适当提高。
- 系统:后端服务推荐用 Linux,比如 Ubuntu 或 CentOS,命令行操作更方便。
- 机房位置:尽量选择和大部分用户距离近的地域,减少网络延迟。
如果你还没选好服务器,可以先在腾讯云控制台看看适合新手的入门配置,再根据预算和预估访问量调整。
2. 域名准备
小程序请求后端接口,推荐使用域名而不是裸 IP,这样后续更换服务器也更方便。
- 准备一个已备案的域名(小程序要求接口域名必须备案且走 HTTPS)。
- 在云服务商后台购买或转入域名,并解析到你的云服务器 IP。
域名解析和证书申请都可以在云控制台一站式完成,对新手比较友好。
三、连接云服务器并安装环境
1. 连接服务器
购买好云服务器后,在控制台获取公网 IP 和登录信息,用 SSH 工具连接:
- Windows:可以用 Xshell、PuTTY 等工具。
- macOS / Linux:直接在终端执行
ssh 用户名@服务器IP。
首次登录建议修改密码或使用密钥登录,安全性更高。
2. 更新系统并安装基础工具
以 Ubuntu 为例,先更新软件源:
sudo apt-get update
然后安装一些常用工具:
sudo apt-get install -y curl wget git vim
3. 安装 Node.js 环境
很多小程序后端用 Node.js 开发,可以用下面的命令安装(以 Node.js 14 为例):
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
安装完成后检查版本:
node -v
npm -v
如果能正常输出版本号,说明 Node.js 环境已经装好。
4. 安装 MySQL 数据库
执行以下命令安装 MySQL:
sudo apt-get install -y mysql-server
安装过程中会提示设置 root 密码,记住这个密码,后面连接数据库会用到。
启动 MySQL 并设置开机自启:
sudo systemctl start mysql
sudo systemctl enable mysql
为了安全,可以运行 sudo mysql_secure_installation 按提示做一些基础安全设置。
四、部署小程序后端代码
1. 准备后端项目
假设你已经有一个用 Node.js + Express 写好的后端项目,目录结构大致如下:
my-miniprogram-api/
├── app.js
├── package.json
├── routes/
└── config/
在本地开发时,可以用 npm run dev 启动服务进行测试。
2. 上传代码到云服务器
有两种常见方式:
- Git 克隆:如果代码托管在 GitHub/Gitee,可以直接在服务器上克隆:
git clone https://github.com/你的用户名/你的项目.git - SCP/FTP 上传:用工具把本地项目压缩后上传到服务器,再解压:
scp 本地压缩包.zip 用户名@服务器IP:/home/ubuntu/ 登录服务器后解压 unzip 本地压缩包.zip
3. 安装项目依赖并启动服务
进入项目目录,安装依赖:
cd my-miniprogram-api
npm install
如果项目需要连接 MySQL,先在 MySQL 里创建数据库和用户,并在项目配置文件中填写正确的数据库信息。
启动服务:
node app.js
但这样直接运行有个问题:一旦关闭终端,服务就会停止。可以用 PM2 来管理进程:
npm install -g pm2
pm2 start app.js --name "miniprogram-api"
这样即使退出终端,服务也会在后台持续运行。可以用 pm2 list 查看运行状态。
五、配置 Nginx 反向代理
小程序要求接口必须是 HTTPS,而直接通过 IP 访问很难申请证书。推荐的做法是:
- 在云服务器上安装 Nginx。
- 用 Nginx 监听 80 和 443 端口,并将请求转发给 Node.js 服务。
- 在云服务商申请免费或付费的 SSL 证书,并配置到 Nginx。
1. 安装 Nginx
sudo apt-get install -y nginx
启动 Nginx 并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
此时访问 http://你的域名,应该能看到 Nginx 的欢迎页面。
2. 配置反向代理
编辑 Nginx 配置文件:
sudo vim /etc/nginx/sites-enabled/default
在 server 块中添加以下内容(假设 Node.js 服务运行在 3000 端口):
server {
listen 80;
server_name 你的域名;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
保存后测试配置是否正确:
sudo nginx -t
如果提示 syntax is ok,就重新加载 Nginx:
sudo systemctl reload nginx
现在访问 http://你的域名 应该能看到你的小程序后端接口返回的数据。
3. 配置 HTTPS
在云服务商控制台申请 SSL 证书,下载 Nginx 版本的证书文件,上传到服务器(比如 /etc/nginx/ssl/ 目录)。
然后修改 Nginx 配置,启用 HTTPS:
server {
listen 443 ssl;
server_name 你的域名;
ssl_certificate /etc/nginx/ssl/你的域名.crt;
ssl_certificate_key /etc/nginx/ssl/你的域名.key;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
同时,可以将 HTTP 请求重定向到 HTTPS:
server {
listen 80;
server_name 你的域名;
return 301 https://$host$request_uri;
}
保存后重新加载 Nginx:
sudo systemctl reload nginx
现在访问 https://你的域名 应该能通过 HTTPS 正常访问接口。
六、配置小程序后台域名
1. 登录微信公众平台
进入“开发” -> “开发设置”,找到“服务器域名”部分。
2. 配置 request 合法域名
在“request 合法域名”中,添加你的后端接口域名(注意是 HTTPS 的域名):
https://你的域名
保存后,小程序前端就可以通过 wx.request 正常调用后端接口了。
3. 真机测试
在微信开发者工具中点击“预览”,用手机扫码真机测试,确保所有功能(登录、数据展示、提交表单等)都正常。
如果接口请求失败,可以打开开发者工具的“Network”面板,查看具体的错误信息(比如域名未配置、证书错误等)。
七、常见问题排查
1. 小程序提示“request:fail url not in domain list”
原因:小程序后台没有配置 request 合法域名。
解决:检查微信公众平台“开发设置”中的域名配置,确保域名正确且已生效。
2. 接口返回 502 Bad Gateway
原因:Nginx 无法连接到 Node.js 服务。
解决:检查 Node.js 服务是否正常运行(pm2 list),以及 Nginx 配置中的 proxy_pass 地址是否正确。
3. 接口返回 404 Not Found
原因:请求的接口路径不正确。
解决:检查小程序前端代码中的接口路径,以及后端路由配置。
4. HTTPS 证书错误
原因:证书配置不正确或域名不匹配。
解决:检查 Nginx 配置中的证书路径是否正确,以及证书是否支持你的域名。
八、上线与维护
1. 提交审核
确认所有功能正常后,在微信公众平台提交审核。审核通过后,点击“发布”即可正式上线。
2. 定期备份
定期备份数据库和代码,避免数据丢失。可以用 mysqldump 备份 MySQL:
mysqldump -u 用户名 -p 数据库名 > backup.sql
代码可以定期推送到 Git 仓库。
3. 监控与优化
使用云监控服务查看服务器的 CPU、内存、带宽使用情况,根据访问量调整服务器配置。
如果访问量增加,可以考虑:
- 升级云服务器配置。
- 使用负载均衡和多个云服务器实例。
- 优化代码和数据库查询,提高性能。
九、总结
通过这篇文章,你应该已经掌握了“小程序云服务器怎么部署上线”的完整流程:
- 准备云服务器和域名。
- 安装 Node.js 和 MySQL 环境。
- 上传后端代码并用 PM2 管理进程。
- 配置 Nginx 反向代理和 HTTPS。
- 在微信小程序后台配置域名并真机测试。
- 解决常见问题并上线维护。
如果你还没有云服务器,可以先在腾讯云上看看适合新手的入门配置,再根据预算和预估访问量调整。
按照这个流程走,大部分“部署不了”的问题都能解决。如果遇到其他问题,可以在评论区留言,我会尽力帮你解答。