访问云服务器
云开发提供了多种方式访问轻量应用服务器上部署的服务,满足不同场景的需求:
| 访问方式 | 适用场景 | 特点 |
|---|---|---|
| 小程序 SDK 访问 | 微信小程序调用后端服务 | 内网访问、自动携带用户身份、无需暴露公网 IP |
| HTTP 网关(待上线支持) | Web 应用、H5 页面、第三方系统调用 | 支持自定义域名、HTTPS 加密、便于管理 |
| 公网 IP 直连 | 开发测试、临时访问 | 灵活、支持任意协议和端口 |
推荐方式
- 生产环境:建议使用 HTTP 网关 绑定自定义域名,获得更好的稳定性和安全性
- 小程序场景:使用 小程序 SDK 访问,享受内网加速和身份认证能力
- 开发调试:可以临时使用 公网 IP 直连 进行快速验证
方式一:小程序 SDK 访问
小程序可以通过微信云开发 SDK 直接调用云服务器接口,无需暴露公网 IP,享受内网加速和自动身份认证。当前小程序 SDK 访问时,仅可以请求到云服务器上的 80 端口,请确保在 80 端口上启动服务并进行监听。
前置准备
确保云服务器上的服务已启动并监听 80 端口。 可以通过以下方式实现:
- 使用 Nginx 反向代理:将 80 端口转发到应用端口
- 应用直接监听 80 端口:配置 Web 框架(如 Express、Flask 等)监听 80 端口
代码示例
// 1. 在小程序 app.js 的 onLaunch 中初始化云开发环境
wx.cloud.init({
env: 'your-env-id', // 替换为你的环境 ID
traceUser: true,
})
// 2. 在需要调用的地方使用 callContainer 方法
const result = await wx.cloud.callContainer({
config: {
env: "your-env-id" // 可以在调用时指定环境
},
header: {
"X-WX-SERVICE": "tcbanyservice", // 【必填】固定值,指定云开发服务
"X-Vm-Service": "lhins-xxxxxxxxx", // 【必填】替换为你的实例 ID
// 可以添加其他自定义 Header
},
path: "/api/user/info", // API 路径
method: "POST", // HTTP 方法
data: { // 请求参数
userId: 123
}
})
console.log('Response:', result.data)
核心参数说明
| Header 字段 | 是否必填 | 说明 | 示例值 |
|---|---|---|---|
X-WX-SERVICE | ✅ 必填 | 固定为 tcbanyservice,用于路由到云开发服务 | tcbanyservice |
X-Vm-Service | ✅ 必填 | 轻量服务器的实例 ID,在控制台可查看 | lhins-abc123 |
如何获取实例 ID
在 云开发控制台 - 云服务器 页面,点击服务器名称可查看实例 ID(格式如 lhins-xxxxxxxxx)