一、背景
客户端通过域名访问后端服务,在api网关层,会判断path的前缀,默认/api开头的请求都转发至后端服务A。
当前缀是/assist/api开头,请求将转发至后端服务B(部署在192.168.80.226,便于测试对比)
在不改动kong网关配置的情况下,现需要把后者的请求转发至192.168.8.28机器上的后端服务B,并且前者的请求转发保持不变,仍旧是服务A。
借助于charles抓包工具之Rewrite,我们可以轻松实现。
二、逻辑架构
我们需要明确以下几点:
- 匹配规则是什么?http://{域名}/assist/api 开头的接口才给与匹配,而非http://{域名}
- 重写规则是什么?host原本是域名,转发至192.168.8.28机器;path的前缀原本是/assist/api,需去掉/assist,变成/api。(因为服务B本身提供的接口是/api开头)