本教程从零开始完成小程序后端在美国服务器上的部署,包括云主机准备、Node.js 环境安装、Nginx 反向代理、HTTPS 证书配置、域名解析、小程序合法域名设置以及后续更新维护。
准备美国云服务器
在 AWS、阿里云、腾讯云或 Vultr 等平台购买一台位于美国地域的云服务器,操作系统选择 Ubuntu 22.04 LTS 64 位,最低配置建议 1 核 CPU、1 GB 内存,创建实例后,在安全组或防火墙规则中放行以下端口:
22:SSH 远程登录
80:HTTP 访问

443:HTTPS 访问
3000:后端服务临时调试端口,正式配置完成后可移除
获取服务器公网 IP,0.113.10。
登录服务器并更新系统
使用 SSH 工具连接服务器:
sshroot@203.0.113.10
首次连接输入 yes 确认指纹,然后输入密码,登录后执行系统更新:
aptupdate aptupgrade-y
创建普通用户并授予 sudo 权限:
adduserdeploy usermod-aGsudodeploy
切换到普通用户:
su-deploy
安装 Node.js 运行环境
小程序后端通常使用 Node.js,安装 Node.js 20.x:
curl-fsSLhttps://deb.nodesource.com/setup_20.x|sudo-Ebash- sudoaptinstall-ynodejs
验证安装:
node-v npm-v
安装 Git:
sudoaptinstall-ygit
安装 PM2 进程管理工具:
sudonpminstall-gpm2
上传后端项目代码
将小程序后端代码上传到服务器,可以使用 Git 拉取代码:
cd/home/deploy gitclonehttps://github.com/your-account/miniapp-backend.git cdminiapp-backend
如果没有 Git 仓库,也可以使用 scp 命令上传本地项目:
scp-r./miniapp-backenddeploy@203.0.113.10:/home/deploy/
进入项目目录并安装依赖:
npminstall
在项目根目录创建 .env 环境变量文件:
nano.env
PORT=3000 WX_APPID=wx1234567890abcdef WX_SECRET=your_secret_key DB_HOST=127.0.0.1 DB_PORT=3306 DB_USER=miniapp DB_PASSWORD=strong_password DB_NAME=miniapp
保存后启动后端服务:
pm2startapp.js--nameminiapp-backend pm2save pm2startup
检查服务状态:
pm2status
本地测试接口:
curlhttp://127.0.0.1:3000/api/health
如果返回正常 JSON,说明后端已运行。
安装并配置 Nginx 反向代理
安装 Nginx:
sudoaptinstall-ynginx sudosystemctlenablenginx sudosystemctlstartnginx
创建站点配置文件:
sudonano/etc/nginx/sites-available/miniapp
server{
listen80;
server_nameapi.example.com;
location/{
proxy_passhttp://127.0.0.1:3000;
proxy_http_version1.1;
proxy_set_headerHost$host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerX-Forwarded-Proto$scheme;
}
}将 api.example.com 替换为实际域名,启用配置:
sudoln-s/etc/nginx/sites-available/miniapp/etc/nginx/sites-enabled/ sudonginx-t sudosystemctlreloadnginx
配置 HTTPS 证书
安装 Certbot:
sudoaptinstall-ycertbotpython3-certbot-nginx
执行证书签发:
sudocertbot--nginx-dapi.example.com
根据提示输入邮箱并同意协议,Certbot 会自动修改 Nginx 配置并启用 HTTPS。
验证自动续期:
sudocertbotrenew--dry-run
域名解析到美国服务器
在域名 DNS 管理后台添加解析记录:
| 主机记录 | 记录类型 | 记录值 | TTL |
|---|---|---|---|
| api | A | 0.113.10 | 600 |
| api | AAAA | 如果使用 IPv6 地址 | 600 |
保存后等待解析生效,可以使用以下命令测试:
pingapi.example.com
或使用 dig 命令:
digapi.example.comA
配置小程序合法域名
登录微信公众平台,进入「开发」-「开发管理」-「开发设置」-「服务器域名」。
在 request 合法域名 中添加:
https://api.example.com
如果后端提供文件上传、下载或 WebSocket 服务,还需要添加:
uploadFile 合法域名:https://api.example.comdownloadFile 合法域名:https://api.example.comsocket 合法域名:wss://api.example.com
保存后,打开微信开发者工具,在「详情」-「域名信息」中刷新配置。
小程序端调用验证
在小程序项目中使用 wx.request 调用后端接口:
wx.request({
url:'https://api.example.com/api/health',
method:'GET',
success(res){
console.log('后端返回:',res.data);
},
fail(err){
console.error('请求失败:',err);
}
});运行真机预览,关闭“不校验合法域名”选项,确认请求成功。
安装并配置 MySQL 数据库
如果后端需要数据库,安装 MySQL:
sudoaptinstall-ymysql-server sudomysql_secure_installation
进入 MySQL:
sudomysql
创建数据库和用户:
CREATEDATABASEminiappCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci; CREATEUSER'miniapp'@'localhost'IDENTIFIEDBY'strong_password'; GRANTALLPRIVILEGESONminiapp.*TO'miniapp'@'localhost'; FLUSHPRIVILEGES; EXIT;
在后端 .env 中填写对应数据库信息,然后重启服务:
pm2restartminiapp-backend
如果项目包含数据库迁移或初始化脚本,执行:
npmrunmigrate
十一、安全加固与防火墙
启用 UFW 防火墙:
sudoufwallowOpenSSH sudoufwallow'NginxFull' sudoufwenable
查看防火墙状态:
sudoufwstatus
建议禁用 root 密码登录并启用 SSH 密钥登录,编辑 SSH 配置:
sudonano/etc/ssh/sshd_config
修改:
PermitRootLoginno PasswordAuthenticationno
重启 SSH:
sudosystemctlrestartssh
十二、后续更新与维护
后端代码更新后,执行:
cd/home/deploy/miniapp-backend gitpulloriginmain npminstall--production pm2restartminiapp-backend
查看运行日志:
pm2logsminiapp-backend
查看 Nginx 访问日志:
sudotail-f/var/log/nginx/access.log
通过 PM2 设置开机自启:
pm2startup pm2save