记录升级 KONG3.1 网关遇到的坑
原始版本:2.1
升级版本:3.1.1
动态路由
- 默认使用插件
request-transformer
假如你有一个真实路由 /user/all
,现在需要网关做转发,前端请求路由为/web/v1/demo/user/login
原始版本你需要在 Konga 路由页面配置PATH
为/web/v3/demo/user/login$
,然后通过插件就能正常将接口转发到后端真实路由
升级版本你需要在 Konga 路由页面配置PATH
为~/web/v3/demo/user/login$
,然后才能通过插件就能正常将接口转发到后端真实路由
具体缘由如下:
路由参数(strip_path
)
可能需要指定路径前缀来匹配路由,但不要将其包含在上游请求中。为此,请strip_path
通过配置路由来使用布尔属性,如下所示:
{
"paths": ["/service"],
"strip_path": true,
"service": {
"id": "..."
}
}
启用此标志指示 Kong Gateway 在匹配此路由并继续代理服务时,不应在上游请求的 URL 中包含 URL 路径的匹配部分。比如下面客户端对上面路由的请求:
GET /service/path/to/resource HTTP/1.1
Host: ...
这会导致 Kong Gateway 发送以下上游请求:
GET /path/to/resource HTTP/1.1
Host: ...
同样,如果在已启用的路由上定义了 Regex 路径strip_path
,则整个请求 URL 匹配序列将被剥离。例如:
{