努力
加油

微信小程序连接腾讯云服务器需要哪些配置步骤?

微信小程序连接腾讯云服务器,核心在于打通“前端(小程序)”与“后端(服务器)”之间的通信链路。这不仅仅是简单的 IP 地址填写,而是一整套涉及网络、安全、域名备案及代码实现的系统工程。

以下是基于腾讯云环境的标准配置步骤,按逻辑顺序分为五个关键阶段:

第一阶段:基础资源准备与环境搭建

在写任何代码之前,必须确保你的服务器处于可访问状态。

  1. 购买并初始化 CVM(云服务器)

    • 登录腾讯云控制台,选择地域(建议选离用户最近或业务所在地的区域,如上海、北京、广州)。
    • 创建实例时,务必注意操作系统版本(推荐 Ubuntu 20.04/22.04 LTS 或 CentOS 7/8,稳定性好)。
    • 安全组配置(关键):这是新手最容易踩坑的地方。默认安全组通常只开放 SSH (22) 端口。你需要手动添加规则:
      • TCP 80:HTTP 服务端口。
      • TCP 443:HTTPS 服务端口(小程序强制要求 HTTPS)。
      • TCP 自定义端口:如果你后端 API 使用非标准端口(如 8080, 3000 等),必须在此处放行。
  2. 安装运行环境

    • 通过 SSH 连接服务器。
    • 根据你的技术栈安装对应环境:
      • Node.js + Nginx(常见组合)
      • Python (Flask/Django) + Gunicorn/Nginx
      • Java (Spring Boot) + Nginx
    • 验证服务是否启动,并通过 curl http://localhost:端口 本地测试接口是否正常返回 JSON 数据。

第二阶段:域名与 SSL 证书配置(合规硬性要求)

微信小程序严禁使用 HTTP 协议,也不允许直接使用 IP 地址作为请求地址。必须使用已备案的域名,且必须配置 HTTPS。

  1. 注册与备案域名

    • 在腾讯云 DNSPod 或其他服务商购买域名。
    • ICP 备案:这是国内云服务的红线。未备案域名无法解析到大陆节点服务器。提交备案申请后,通常需要 5-20 个工作日。
    • 备案通过后,将域名 A 记录解析到你的 CVM 公网 IP。
  2. 申请并部署 SSL 证书

    • 进入腾讯云控制台 -> SSL 证书管理 -> 申请免费证书(DV 单域名)。
    • 下载证书文件(通常包含 .key 私钥和 .pem/.crt 公钥)。
    • Nginx 配置示例:

      server {
       listen 443 ssl;
       server_name yourdomain.com; # 替换为你的域名
      
       ssl_certificate /path/to/cert.pem;
       ssl_certificate_key /path/to/cert.key;
      
       location / {
           proxy_pass http://127.0.0.1:你的后端端口; # 反向XX到实际服务
       }
      }
    • 重启 Nginx:sudo systemctl restart nginx。
    • 浏览器访问 https://yourdomain.com,确认出现小锁标志,表示 HTTPS 生效。

第三阶段:小程序端配置(开发者后台)

这一步决定了哪些域名可以被小程序调用。

  1. 登录微信公众平台

    • 进入 mp.weixin.qq.com,使用小程序管理员账号登录。
  2. 设置开发信息

    • 获取 AppID 和 Secret,用于后续服务端生成临时票据(如需微信登录功能)。
  3. 配置服务器域名(最易出错环节)

    • 路径:开发管理 -> 开发设置 -> 服务器域名。
    • 找到 “request 合法域名”。
    • 填入你的 HTTPS 域名(例如:https://api.yourdomain.com)。
    • 注意:
      • 只能填域名,不能填 IP。
      • 必须带 https:// 前缀。
      • 一个小程序最多配置 20 个域名,需合理规划。
      • 如果使用了 CDN,CDN 绑定的域名也需要加在这里。
  4. 开启“不校验合法域名”(仅开发调试用)

    • 在微信开发者工具中,勾选“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”。
    • 警告:此选项仅在本地预览和真机调试时有效,发布上线前必须关闭,否则审核会被拒。

第四阶段:代码实现与安全加固

  1. 发起请求(wx.request)
    在小程序代码中调用后端 API:

    wx.request({
     url: 'https://api.yourdomain.com/api/data', // 必须是已配置的合法域名
     method: 'GET',
     header: {
       'content-type': 'application/json'
     },
     success(res) {
       console.log(res.data);
     },
     fail(err) {
       console.error('请求失败:', err);
     }
    });
  2. 跨域问题处理(CORS)

    • 小程序本身不涉及传统浏览器的 CORS 策略,但为了兼容性,建议在后端(Nginx 或应用层)允许所有来源或特定来源的请求。
    • Nginx 配置示例:
      add_header Access-Control-Allow-Origin *;
      add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
  3. 身份验证与安全

    • 不要在前端硬编码敏感信息(如数据库密码、密钥)。
    • 实现 Token 机制:用户登录后,后端返回 Token,前端在后续请求 Header 中携带 Token,后端验证权限。
    • 对于微信支付等敏感操作,必须在服务端完成签名和验签,禁止在小程序端直接处理支付逻辑。

第五阶段:上线前检查清单

  1. 域名白名单:确认 request 合法域名列表中包含所有用到的域名。
  2. HTTPS 有效性:确保证书未过期,且支持 TLS 1.2 以上版本。
  3. ICP 备案号:确保域名已备案,且在工信部系统中状态正常。
  4. 隐私协议:在小程序后台“设置 -> 基本设置 -> 用户隐私保护指引”中,声明收集用户信息的类型(如 openid、位置信息等),否则无法上架。
  5. 服务器负载测试:使用简单压测工具测试 API 响应时间,确保高并发下不崩溃。

常见问题排查(Troubleshooting)

现象 可能原因 解决方案
request:fail url not in domain list 域名未在小程序后台配置 登录 mp.weixin.qq.com,检查“request 合法域名”
SSL handshake error / 证书错误 证书未部署或格式错误 检查 Nginx 中证书路径是否正确,确保证书与私钥匹配
Network Error 安全组未放行端口 检查腾讯云控制台安全组规则,确认 443 或自定义端口已开放
404 Not Found 路由配置错误或后端服务未启动 检查 Nginx 反向XX配置,检查后端服务进程是否存活

总结

微信小程序连接腾讯云服务器的本质是:备案域名 + HTTPS 证书 + 小程序后台域名白名单 + 安全的后端 API。其中,ICP 备案和域名白名单配置是最容易被忽略但导致失败的两大关键点。务必遵循“先通内网,再通网络,最后配白名单”的顺序进行调试。