路径透传
路径透传是路由规则中的一个开关,用于控制 HTTP 网关转发请求给后端服务时,是否将触发路径一并传给后端。
工作原理
每条路由都配置了一个触发路径(如 /more)。当请求命中该路由后,网关会根据「路径透传」开关决定传给后端服务的路径:
| 开关状态 | 后端服务(资源)收到的路径 |
|---|---|
| 关闭路径透传(默认) | 剥掉触发路径前缀,只传匹配后的路径 |
| 开启路径透传 | 透传完整路径(保留触发路径) |
举例说明,触发路径为 /more,用户访问 https://example.com/more/path:
- 关闭路径透传(默认):后端服务收到的路径为
/path(剥掉/more前缀) - 开启路径透传:后端服务收到的路径为
/more/path(完整路径)
适用场景
- 后端自有子路径:后端服务(如云托管、HTTP 云函数)自身规划了多级路径时,开启透传让后端拿到完整路径自行分发
- 统一后端服务:同一后端服务对接多个网关路由时,通过透传完整路径来区分请求来源
- 剥前缀转发:后端只关心触发路径之后的业务路径时,保持默认关闭即可,后端无需感知网关路由前缀
使用方法
- 登录云开发控制台,进入 HTTP 网关管理页面
- 在路由匹配规则列表中,找到目标路由,点击「编辑」
- 找到「路径透传」开关,按需开启或关闭
- 保存后立即生效
注意事项
- 路径透传默认关闭(
enablePathTransmission: false),此时网关会剥掉触发路径前缀;开启后(true)透传完整路径 - 路径透传生效后,会影响后端服务收到的
request.path值,请同步检查后端业务代码中的路径处理逻辑 - 若路由的目标资源开启了身份认证,路径透传规则同样适用,透传逻辑在鉴权之后执行
- 静态托管资源路由默认由网关自动生成路径重写规则,如需开启路径透传,请先确认路由的路径重写配置,避免与自动生成的规则冲突