在京东云轻量应用服务器(Lightweight Application Server)上部署小程序后端和 Web 应用,通常采用 Nginx + Node.js/Python/Java 或 Docker 的架构。以下是基于最通用的 Node.js (Express/NestJS) + Nginx 方案的完整部署步骤。
第一阶段:准备工作
-
购买与配置服务器
- 登录京东云控制台,创建“轻量应用服务器”。
- 镜像选择:推荐选择
Ubuntu 20.04/22.04或CentOS 7/8(国内环境建议 Ubuntu,生态支持更好)。 - 网络设置:确保已绑定公网 IP,并在安全组中开放以下端口:
80(Web 访问)443(HTTPS 访问)22(SSH 远程连接)- (可选)
3000等自定义服务端口(后续会由 Nginx X_X转发,初期可暂时关闭以测试)。
-
准备代码与环境
- 小程序后端:准备好你的 API 代码(如 Express, Koa, NestJS 等),并打包成压缩包或上传至 Git 仓库。
- Web 前端:使用
npm run build将 Vue/React 项目打包为静态文件(dist 目录)。 - 域名解析:在 DNS 服务商处将域名(如
api.example.com,www.example.com)解析到服务器的公网 IP。
第二阶段:基础环境安装
通过 SSH 工具(如 Xshell、FinalShell 或终端)登录服务器。
1. 更新系统并安装依赖
# Ubuntu/Debian 示例
sudo apt update && sudo apt upgrade -y
# 安装 Node.js (推荐 v18 LTS)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
# 安装 Nginx
sudo apt install nginx -y
# 安装 PM2 (进程管理工具,用于保持 Node 服务运行)
sudo npm install pm2 -g
2. 配置防火墙
sudo ufw allow 'Nginx Full'
sudo ufw allow OpenSSH
sudo ufw enable
第三阶段:部署应用
场景 A:部署小程序后端 (API 服务)
-
上传代码
使用scp命令或 FTP 工具将后端代码上传至服务器指定目录(例如/var/www/myapp-backend)。mkdir -p /var/www/myapp-backend # 假设你有一个 zip 包 scp myapp-backend.zip root@your-ip:/tmp/ cd /var/www/myapp-backend unzip /tmp/myapp-backend.zip -
安装依赖并启动
cd /var/www/myapp-backend npm install # 创建生产环境变量文件 .env (根据实际需求配置 DB 密码、密钥等) # 使用 PM2 启动服务,监听所有网卡 (0.0.0.0) pm2 start app.js --name "backend-api" --node-args="--max-old-space-size=512" pm2 save pm2 startup注:请根据实际入口文件名替换
app.js。
场景 B:部署 Web 前端 (静态资源)
-
上传构建产物
将本地生成的dist文件夹上传至服务器(例如/var/www/myapp-web)。mkdir -p /var/www/myapp-web scp -r dist/* root@your-ip:/var/www/myapp-web/ -
配置 Nginx 反向X_X与静态托管
编辑 Nginx 配置文件:sudo nano /etc/nginx/sites-available/default(如果提示找不到 sites-available,可直接编辑
/etc/nginx/nginx.conf或在 sites-enabled 下操作)写入以下配置(包含前后端分离处理):
server { listen 80; server_name api.yourdomain.com www.yourdomain.com; # 替换为你的域名 # 1. 小程序后端 API 接口 (反向X_X) location /api/ { proxy_pass http://localhost:3000/api/; # 替换为你 PM2 启动的端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # WebSocket 支持 (如果小程序需要长连接) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } # 2. Web 前端静态资源 location / { root /var/www/myapp-web; index index.html; try_files $uri $uri/ /index.html; # SPA 路由刷新修复 } # 3. 错误页面 error_page 404 /404.html; error_page 500 502 503 504 /50x.html; } -
重载 Nginx
sudo nginx -t # 检查配置语法 sudo systemctl reload nginx
第四阶段:配置 HTTPS (SSL 证书)
微信小程序强制要求 HTTPS 请求,因此必须配置证书。推荐使用 Let’s Encrypt 免费证书。
-
安装 Certbot
sudo apt install certbot python3-certbot-nginx -y -
获取并自动配置证书
sudo certbot --nginx -d api.yourdomain.com -d www.yourdomain.com按照提示输入邮箱并同意条款,Certbot 会自动修改 Nginx 配置并重载。
-
验证自动续期
Certbot 会自动添加定时任务,无需额外操作。你可以手动测试:sudo certbot renew --dry-run
第五阶段:数据库与持久化 (可选但推荐)
如果你的应用依赖 MySQL 或 Redis:
- 方案一(轻量级):在服务器上直接安装 MySQL/Redis(占用内存较多,适合小流量)。
sudo apt install mysql-server redis-server -y sudo systemctl enable mysql redis-server - 方案二(推荐):购买京东云的 云数据库 RDS 或 云缓存 Redis 实例。
- 优点:数据更安全、性能更稳、支持自动备份。
- 操作:在京东云控制台购买对应产品,获取内网 IP 和账号密码,填入后端的
.env配置文件中。
第六阶段:小程序端配置
- 修改请求地址
将小程序代码中的request基础 URL (baseUrl) 从http://localhost改为https://api.yourdomain.com。 - 设置合法域名
登录 微信公众平台 -> 开发管理 -> 开发设置 -> 服务器域名。- 在 request 合法域名 中添加:
https://api.yourdomain.com。 - 注意:必须带
https://,且域名需备案(如果是国内服务器)。
- 在 request 合法域名 中添加:
常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 502 Bad Gateway | Nginx 无法连接到后端 Node 服务 | 1. 检查 PM2 是否运行 (pm2 list)。2. 检查 Nginx 配置的 proxy_pass 端口是否正确。3. 检查 Node 服务是否监听了 0.0.0.0 而非 127.0.0.1。 |
| 小程序请求报错 404 | 路径不匹配 | 检查 Nginx 中 location /api/ 的配置,确保后端代码的路由前缀与 Nginx 转发一致。 |
| 跨域错误 (CORS) | 浏览器/小程序限制 | 在后端代码中开启 CORS 中间件(如 cors()),或者在 Nginx 中添加 add_header Access-Control-Allow-Origin *;。 |
| 静态资源加载失败 | 前端路径配置错误 | 检查 Web 项目的 vite.config.js 或 vue.config.js 中的 publicPath,确保设置为 /。 |
总结
完成以上步骤后,你的京东云轻量服务器即可同时支撑小程序的后端 API 交互和 Web 端的静态页面展示。建议定期执行 apt upgrade 更新系统安全补丁,并利用京东云控制台的监控功能关注 CPU 和内存使用情况。
云服务器