18 10 月 2026
买了服务器只是开始。小程序后端要真正跑起来,还得过三关:域名解析、ICP 备案、HTTPS 证书,最后在小程序后台配"合法域名"。这篇按操作顺序一步步来,全部命令可直接抄。

整体时间线:解析(10 分钟)→ 备案(3–20 个工作日,看地区)→ 部署环境(半小时)→ 配证书(10 分钟)→ 配合法域名(5 分钟)。备案最久,所以买完服务器第一件事就是提交备案,边等边搭环境。

一、域名解析:把域名指到服务器

在小程序后台配置合法域名之前,域名必须先能访问你的服务器。假设域名是 api.yourdomain.com:

记录类型主机记录值说明
Aapi你的服务器 IP直接指向 IP
CNAMEapi商家给的映射域名NAT 型常用,问商家要

NAT 型服务器没有固定公网 IP 时,用商家提供的映射域名做 CNAME。解析生效用 dig 或 nslookup 验证:

dig api.yourdomain.com +short
# 返回 IP 或 CNAME 目标即生效

DNS 记录类型详解见域名解析与 DNS 记录详解。

二、ICP 备案:大陆主机的必经之路

为什么必须备:微信小程序后台配置服务器域名时,域名必须已完成 ICP 备案(大陆服务器)。没备案的域名配进去,请求直接失败。

流程(通过你买服务器的商家接入,最省事):

  1. 在商家控制台提交"备案申请",拿到备案服务号
  2. 登录工信部备案系统,填主体信息(个人:身份证;企业:营业执照 + 法人信息)
  3. 上传资料 → 商家初审(1–2 个工作日)
  4. 短信核验(工信部会发短信到负责人手机,24 小时内必须完成核验,超时被打回)
  5. 管局审核(5–20 个工作日,各省不同)
  6. 备案通过,拿到备案号,按要求挂在网站底部

省时技巧:资料一次填对。常见被打回的原因:网站名称不规范、联系方式空号、照片不清晰。详细流程和避坑见域名备案流程完全指南。

不想备案?买中国香港节点可以跳过,但大陆用户访问延迟会高一些,且微信对非大陆服务器的域名同样要求 HTTPS,只是不校验备案。

三、搭环境:Nginx + 后端 + 数据库

以最常见的 Nginx + Node.js + MySQL 为例,宝塔方案:

# 1. 装宝塔(Ubuntu/Debian)
wget -O install.sh https://download.bt.cn/install/install_lts.sh
sudo bash install.sh

# 2. 面板里安装:Nginx 1.24+、MySQL 8.0、Node版本管理器、PM2

Docker 方案(一条 compose 起全部):

services:
  nginx:
    image: nginx:alpine
    ports: ["80:80", "443:443"]
    volumes:
      - ./nginx.conf:/etc/nginx/conf.d/default.conf
      - ./certs:/etc/nginx/certs
      - ./www:/www
    restart: unless-stopped

  app:
    image: node:20-alpine
    working_dir: /app
    volumes: ["./app:/app"]
    command: sh -c "npm ci --production && node server.js"
    restart: unless-stopped

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: 改成强密码
      MYSQL_DATABASE: miniapp
    volumes: ["mysqldata:/var/lib/mysql"]
    restart: unless-stopped

  redis:
    image: redis:7-alpine
    command: redis-server --requirepass 改成强密码
    volumes: ["redisdata:/data"]
    restart: unless-stopped

volumes:
  mysqldata:
  redisdata:

MySQL 安装调优细节见MySQL 安装与优化入门,Redis 见Redis 安装与缓存应用实战。

四、配 HTTPS:证书 + Nginx 反代

申请证书(Let's Encrypt 免费,宝塔里一键申请;或商家送的免费证书):

# certbot 方式(Debian/Ubuntu)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d api.yourdomain.com

Nginx 配置(把 443 的请求转给本地的 Node 应用):

server {
    listen 443 ssl http2;
    server_name api.yourdomain.com;

    ssl_certificate     /etc/nginx/certs/api.yourdomain.com.pem;
    ssl_certificate_key /etc/nginx/certs/api.yourdomain.com.key;

    # 强制 TLS1.2+,兼容性好
    ssl_protocols TLSv1.2 TLSv1.3;

    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-Proto $scheme;
    }
}

server {
    listen 80;
    server_name api.yourdomain.com;
    return 301 https://$host$request_uri;   # HTTP 全量跳 HTTPS
}

自签证书在微信里不被信任(微信校验证书链),必须用受信任 CA 签发的证书。验证:

curl -I https://api.yourdomain.com/health
# 看到 HTTP/2 200、证书信息无误即通

证书部署更多细节见免费 SSL 证书申请与 HTTPS 部署和HTTPS 强制跳转与安全响应头。

五、小程序后台:配置 request 合法域名

证书和接口都通了,最后一步:

  1. 登录 mp.weixin.qq.com → 开发管理 → 开发设置 → 服务器域名
  2. 在 request 合法域名 填 https://api.yourdomain.com(只填域名,不带路径、不带端口)
  3. 如果用 WebSocket,另配 socket 合法域名(wss://)
  4. 用 uploadFile/downloadFile 的,配 uploadFile / downloadFile 合法域名
  5. 保存后立即生效,但每月只能改有限次数,域名想定再填

开发阶段嫌麻烦,可以临时勾选"不校验合法域名",但提交审核前必须取消勾选并真实配置,否则审核被拒。

六、接口示例:登录态是怎么跑的

小程序登录的标准流程(OpenAPI + 自定义登录态):

小程序 wx.login() 拿到 code
  → 你的后端用 code + AppID + AppSecret 调微信接口,换到 openid + session_key
  → 后端签发自己的 token(JWT 或随机串存 Redis)
  → 前端存 token,后续请求带在 header 里
// 后端 Node/Express 示例(登录)
app.get('/api/login', async (req, res) => {
  const { code } = req.query
  const r = await axios.get('https://api.weixin.qq.com/sns/jscode2session', {
    params: {
      appid: APPID, secret: APP_SECRET,
      js_code: code, grant_type: 'authorization_code'
    }
  })
  const token = signToken(r.data.openid)      // 自己签发
  await redis.set('token:' + token, r.data.openid, 'EX', 7200)
  res.json({ token })
})

AppSecret 是最高机密,只能存服务器,绝不能写进小程序前端代码(前端代码所有人可下载)。密钥管理见Steam API Key 与 RCON 密码安全里的同类思路。

七、上线前检查清单

  • [ ] 域名解析生效,dig 能查到
  • [ ] ICP 备案通过,备案号已挂页面
  • [ ] curl https://域名/health 返回 200,证书链完整
  • [ ] HTTP 自动跳 HTTPS
  • [ ] request 合法域名已配,取消"不校验合法域名"勾选
  • [ ] 防火墙只开 443 + SSH,数据库端口不对外
  • [ ] 数据库每日自动备份 + 异地一份
  • [ ] 接口有频率限制,防刷(见Nginx 限速与 CC 防护进阶)

结语

小程序后端的技术栈不重,重的是流程合规:备案、HTTPS、合法域名,三步一个都不能少。流程走通之后,剩下的就是正常写业务接口了。

需要搭小程序后端服务器,可以看看财富云计算:NAT 型云服务器支持 443 映射,域名备案一站式协助,SSD + 快照备份,被攻击有 DDoS 清洗——后端该有的都有,价格比独立 IP 机型省一半以上。

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:小程序服务器选购:配置、带宽、地域、NAT 还是独立 IP
  2. 下一篇:小程序云开发 vs 自建服务器后端:成本、控制权与取舍
发表评论 3