奋斗
努力

京东云轻量服务器部署小程序和Web应用的完整步骤是什么?

云计算

在京东云轻量应用服务器(Lightweight Application Server)上部署小程序后端和 Web 应用,通常采用 Nginx + Node.js/Python/Java 或 Docker 的架构。以下是基于最通用的 Node.js (Express/NestJS) + Nginx 方案的完整部署步骤。


第一阶段:准备工作

  1. 购买与配置服务器

    • 登录京东云控制台,创建“轻量应用服务器”。
    • 镜像选择:推荐选择 Ubuntu 20.04/22.04 或 CentOS 7/8(国内环境建议 Ubuntu,生态支持更好)。
    • 网络设置:确保已绑定公网 IP,并在安全组中开放以下端口:
      • 80 (Web 访问)
      • 443 (HTTPS 访问)
      • 22 (SSH 远程连接)
      • (可选) 3000 等自定义服务端口(后续会由 Nginx X_X转发,初期可暂时关闭以测试)。
  2. 准备代码与环境

    • 小程序后端:准备好你的 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 服务)

  1. 上传代码
    使用 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
  2. 安装依赖并启动

    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 前端 (静态资源)

  1. 上传构建产物
    将本地生成的 dist 文件夹上传至服务器(例如 /var/www/myapp-web)。

    mkdir -p /var/www/myapp-web
    scp -r dist/* root@your-ip:/var/www/myapp-web/
  2. 配置 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;
    }
  3. 重载 Nginx

    sudo nginx -t  # 检查配置语法
    sudo systemctl reload nginx

第四阶段:配置 HTTPS (SSL 证书)

微信小程序强制要求 HTTPS 请求,因此必须配置证书。推荐使用 Let’s Encrypt 免费证书。

  1. 安装 Certbot

    sudo apt install certbot python3-certbot-nginx -y
  2. 获取并自动配置证书

    sudo certbot --nginx -d api.yourdomain.com -d www.yourdomain.com

    按照提示输入邮箱并同意条款,Certbot 会自动修改 Nginx 配置并重载。

  3. 验证自动续期
    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 配置文件中。

第六阶段:小程序端配置

  1. 修改请求地址
    将小程序代码中的 request 基础 URL (baseUrl) 从 http://localhost 改为 https://api.yourdomain.com。
  2. 设置合法域名
    登录 微信公众平台 -> 开发管理 -> 开发设置 -> 服务器域名。

    • 在 request 合法域名 中添加:https://api.yourdomain.com。
    • 注意:必须带 https://,且域名需备案(如果是国内服务器)。

常见问题排查

问题现象 可能原因 解决方案
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 和内存使用情况。

未经允许不得转载:云服务器 » 京东云轻量服务器部署小程序和Web应用的完整步骤是什么?