首页 游戏 软件 资讯 排行榜 专题
首页
业界动态
别再硬改代码了!Envoy Gateway 这个功能让路由无缝对接

别再硬改代码了!Envoy Gateway 这个功能让路由无缝对接

热心网友
86
转载
2026-04-14

实战:重写URL前缀路径

在微服务落地和API网关部署过程中,一个绕不开的经典场景就是路径适配。你肯定遇到过:前端或是客户端发出的请求是一个路径,但后端服务实际监听的却是另一个。比如,客户端发起的是`/api/v1/users`的请求,而后端只有`/users`这个接口在等着。这种前后端路径不匹配,往往需要我们在网关层做一次“翻译”,也就是URL路径重写。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

Envoy Gateway作为下一代Kubernetes原生网关,基于强大的Envoy Proxy构建,提供了非常灵活和精准的路由与重写能力。接下来,我们就用一个具体的例子,看看如何配置它的Rewrite URL Prefix Path功能。

先看第一个实战场景,需求很明确:

  • 客户端请求: `https://example.local/api/v1/who`
  • 后端服务实际路径: `/who`
  • 目标: 让API网关自动完成转化,把客户端请求中包含的`/api/v1/who`这个前缀,精准地重写成`/who`,然后转发给后端。

要实现这个效果,核心是配置Envoy Gateway的HTTPRoute资源,并使用URLRewrite过滤器。具体配置示例如下:


cat <<'EOF' | kubectl apply -f -
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
 name: simple
spec:
 hostnames:
 - example.local
 parentRefs:
 - group: gateway.networking.k8s.io
   kind: Gateway
   name: simple-gw
 rules:
 - matches:
   - path:
       type: PathPrefix
       value: /api/v1/who # 浏览器访问路径
   filters:
   - type: URLRewrite
     urlRewrite:
       path:
         type: ReplacePrefixMatch
         replacePrefixMatch: /who # 业务收到访问路径
   backendRefs:
   - name: simple
     port: 80
EOF

配置生效后,如何验证服务按预期工作了呢?直接看结果:

实战:重写URL完整路径

刚才的例子是针对路径前缀的替换,但有时候,我们需要更彻底的改写,比如替换掉整个路径。这在统一健康检查或就绪检查接口时特别常见。

来看另一个场景:

  • 客户端请求: `/status/healthz` 和 `/status/readyz`
  • 后端服务实际路径: `/ping`
  • 目标: 无论客户端请求的是`/status/healthz`还是`/status/readyz`,最终都统一被重写为`/ping`再转发至后端。

这里的关键在于,不再只是替换匹配的前缀,而是替换掉整个匹配到的路径。配置上需要使用`ReplaceFullPath`类型。


cat <<'EOF' | kubectl apply -f -
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
 name: simple
spec:
 hostnames:
 - example.local
 parentRefs:
 - group: gateway.networking.k8s.io
   kind: Gateway
   name: simple-gw
 rules:
 - matches:
   - path:
       type: PathPrefix
       value: /status # 浏览器访问路径
   filters:
   - type: URLRewrite
     urlRewrite:
       path:
         type: ReplaceFullPath
         replaceFullPath: /ping # 业务收到访问路径
   backendRefs:
   - name: simple
     port: 80
EOF

配置完成后,验证一下重写效果:

实战:重写主机名

除了改写路径,主机名(Host)的重写在多租户SaaS应用中同样不可或缺。这类应用的典型做法是使用不同子域名来区分租户,例如:

  • `tenant1.simple.com`
  • `tenant2.simple.com`

应用服务需要根据请求的Host头来判断当前是哪个租户在访问,但最终所有租户的请求都需要落到`simple.com`这个主域名对应的业务服务上。我们当然不想在后端服务里维护一堆租户子域名,这时在网关层重写Host头就成了解法。

使用Envoy Gateway的URLRewrite过滤器,可以轻松实现这个需求。


cat <<'EOF' | kubectl apply -f -
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
 name: simple
spec:
 hostnames:
 - "*.simple.com"
 parentRefs:
 - group: gateway.networking.k8s.io
   kind: Gateway
   name: simple-gw
 rules:
 - matches:
   - path:
       type: PathPrefix
       value: /
   filters:
   - type: URLRewrite
     urlRewrite:
       hostname: www.simple.com
   backendRefs:
   - name: simple
     port: 80
EOF

来看一下验证结果,可以看到Host头已经按预期被改写了:

结语

通过Envoy Gateway的URLRewrite过滤器,我们能够非常从容地实现路径前缀乃至整个主机名的重写。这种能力,本质上是在解耦客户端请求的格式与后端服务接口的设计,让前后端可以各自独立演化。对于构建灵活、可维护的微服务集成架构来说,这无疑是一个简化流程、提升效率的关键特性。

来源:https://www.51cto.com/article/835365.html
免责声明: 游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

最新APP

宝宝过生日
宝宝过生日
应用辅助 04-07
台球世界
台球世界
体育竞技 04-07
解绳子
解绳子
休闲益智 04-07
骑兵冲突
骑兵冲突
棋牌策略 04-07
三国真龙传
三国真龙传
角色扮演 04-07

热门推荐

Lemonaid-AI音乐生成工具
AI
Lemonaid-AI音乐生成工具

Lemonaid是什么 如果你正为音乐创作寻找得力助手,那么Lemonaid很可能就是答案。它是一款专门面向专业音乐人打造的AI音乐生成工具,核心能力在于自主生成包含完整旋律、和声与节奏的乐曲。无论是想要一段氛围感十足的背景音乐,还是为具体场景定制配乐,它都能提供高度逼真且质量上乘的作品。工具提供了

热心网友
04.14
苹果折叠屏iPhone Ultra关键点汇总:这4个问题你肯定想知道
iphone
苹果折叠屏iPhone Ultra关键点汇总:这4个问题你肯定想知道

苹果也要出折叠屏,传闻已经有几年了,从目前供应链、分析师与知名爆料者释放的信息来看,这款与市面大折都不一样的阔折叠似乎已经蓄势待发,大概率今年下半年就要正式面市。今天我们就来为大家汇总一波,没准儿就有你想知道的消息。 关于苹果折叠屏手机的传闻,已经流传了好几年。如今,综合供应链、分析师以及各路知名爆

热心网友
04.14
《刺客信条4:黑旗 重制版》对手来了!被称为4A级海盗大作
游戏评测
《刺客信条4:黑旗 重制版》对手来了!被称为4A级海盗大作

《刺客信条:黑旗重制版》官宣之际,这款新海盗游戏为何能抢先赢得玩家口碑? 当游戏界的焦点都集中在《刺客信条:黑旗重制版》的正式公布时,一款名为《风启之旅》(Windrose)的开放世界海盗生存建造游戏,却凭借其过硬的品质与独特的玩法融合,悄然在玩家社区中掀起热议。这款由乌兹别克斯坦团队Kraken

热心网友
04.14
腾讯智影-智能视频创作与发布一体化平台
AI
腾讯智影-智能视频创作与发布一体化平台

产品介绍 提到云端智能视频创作,腾讯智影是一个绕不开的名字。这款由腾讯推出的平台,本质上是一个一站式的在线视频工厂,集成了从素材挖掘、剪辑、渲染到最终发布的全链路功能,旨在为用户提供全方位的视频创作解决方案。更吸引人的是,它不仅免费开放,还深度整合了多项前沿AI技术,目标很明确:让视频化表达这件事,

热心网友
04.14
比心被拒小哥回应:不尴尬 尊重Coser 大家当个乐子
游戏评测
比心被拒小哥回应:不尴尬 尊重Coser 大家当个乐子

《王者荣耀世界》线下活动风波:合影互动引争议,职业素养与网络舆论深度探讨 近日,《王者荣耀世界》的一场线下玩家见面会,因台上一次短暂的合影互动,意外成为全网热议的焦点。活动中,一位男粉丝上台与角色扮演者(Coser)合影时,主动做出比心手势以示友好,却未得到身旁Coser的任何回应。男生举着手势在原

热心网友
04.14