在阿里云配置小程序后端接口,核心是部署可被公网访问的服务,并确保满足微信/支付宝等平台的域名白名单要求。以下是标准流程:
一、前期准备
-
注册并实名认证
- 完成阿里云账号实名认证(个人/企业)。
- 申请小程序 AppID(微信小程序需在 微信公众平台 获取;支付宝小程序在 开放平台 获取)。
-
备案域名(关键!)
- 小程序必须使用 HTTPS + 已 ICP 备案的域名。
- 购买域名 → 在阿里云控制台提交备案 → 等待审核通过(通常 10–20 工作日)。
- ⚠️ 未备案域名无法用于生产环境的小程序接口调用。
-
申请 SSL 证书
- 在阿里云【SSL 证书服务】免费申请 DV 证书(支持多域名通配符可选)。
- 下载证书后部署到服务器或 CDN/负载均衡层。
二、选择部署方案(推荐优先级)
| 方案 | 适用场景 | 优势 | 注意事项 |
|---|---|---|---|
| 云服务器 ECS + Nginx/容器化部署 | 自定义架构、高可控性 | 灵活、成本可控 | 需自行配置安全组、HTTPS、运维 |
| 函数计算 FC(Serverless) | 轻量接口、事件驱动 | 免运维、按量付费、自动 HTTPS | 冷启动延迟需注意;部分框架需适配 |
| 云托管(Cloud Run / 阿里云容器服务 ACK + Ingress) | 微服务、容器化应用 | 弹性伸缩、CI/CD 友好 | 需熟悉 Kubernetes 或容器编排 |
| 云开发(WeChat Cloud Base on Aliyun) | 快速原型、简单 CRUD | 与微信生态深度集成 | 仅支持特定能力,扩展性有限 |
✅ 新手推荐:ECS + Nginx + Let’s Encrypt 自动续期 或 FC + API Gateway
三、以「ECS + Nginx」为例的详细步骤
1. 创建 ECS 实例
- 控制台 → 云服务器 ECS → 创建实例
- 地域:选靠近用户的地域(如杭州)
- 镜像:Ubuntu 22.04 LTS / CentOS 7+
- 安全组规则:
# 开放必要端口 TCP 80 (HTTP) TCP 443 (HTTPS) TCP 22 (SSH, 建议限制 IP)
2. 安装运行环境 & 部署代码
# Ubuntu 示例
sudo apt update && sudo apt install nginx nodejs npm -y
# 或使用 Docker 部署(更规范)
docker run -d --name my-app -p 80:3000 your-image
- 将后端代码上传至服务器(Git/SFTP/CI/CD)。
- 启动服务(如 Node.js
npm start,Java Spring Bootjava -jar app.jar)。
3. 配置 Nginx + HTTPS
编辑 /etc/nginx/sites-available/myapp:
server {
listen 443 ssl http2;
server_name api.yourdomain.com; # 替换为备案域名
ssl_certificate /etc/ssl/certs/your_cert.pem;
ssl_certificate_key /etc/ssl/private/your_key.key;
location / {
proxy_pass http://localhost:3000; # 转发到你的服务
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
# 强制 HTTP → HTTPS 跳转
server {
listen 80;
server_name api.yourdomain.com;
return 301 https://$server_name$request_uri;
}
启用站点:
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
4. 更新小程序后台配置
- 登录 微信公众平台
- 开发 → 开发设置 → 服务器域名
- 添加
https://api.yourdomain.com到 request 合法域名 - (支付、上传文件等需分别配置对应域名)
四、安全加固建议
- ✅ 开启 WAF(Web 应用防火墙)防护常见攻击
- ✅ 使用 API 网关(阿里云 API Gateway)做鉴权、限流、日志审计
- ✅ 敏感信息不硬编码,用 KMS 或 Secrets Manager 管理密钥
- ✅ 启用 CORS 策略,仅允许小程序域名访问(但注意:微信要求请求头中
Origin需匹配)
五、验证测试
- 用
curl -k https://api.yourdomain.com/health检查服务可达性 - 在真机小程序中发起请求,观察是否报错
invalid domain - 查看阿里云日志(SLB/FC/OS 日志)排查问题
需要我针对某一种具体技术栈(如 Spring Boot + MySQL、Node.js + MongoDB、Python Flask)提供完整部署脚本?或者需要生成一份可打印的配置 checklist?欢迎告诉我你的技术选型 😊
云小栈