当前位置: 代码网 > it编程>编程语言>Java > GateWay中StripPrefix的作用及说明

GateWay中StripPrefix的作用及说明

2025年07月20日 Java 我要评论
网关过滤器stripprefix 过滤器stripprefix网关过滤器工厂采用一个参数stripprefix。 stripprefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。作用: 去

网关过滤器

stripprefix 过滤器

stripprefix网关过滤器工厂采用一个参数stripprefix。 stripprefix参数表示在将请求发送到下游之前从请求中剥离的路径个数。

作用: 去掉部分url路径

spring:
  cloud:
    gateway:
      routes:
      - id: bds-lbs-service
        uri: lb://bds-lbs-service
        predicates:
        - path=/lbs/**
        filters:
        - stripprefix=1

如上,我们访问网关地址http://host:port/lbs/hello时

若无stripprefix过滤器时,gateway 发送请求到后台服务bds-lbs-service的url就是http://bds-lbs-service/lbs/hello

若有stripprefix过滤器时,gateway会根据stripprefix=1所配的值(这里是1)去掉url路径中的部分前缀(这里去掉一个前缀,即去掉lbs)

发送请求到后台服务spring-cloud-producer的url变成http://bds-lbs-service/hello

spring:
  cloud:
    gateway:
      routes:
      - id: crm
        uri: http://crm
        predicates:
        - path=/crm/**
        filters:
        - stripprefix=2

当通过网关向/name/bar/foo发出请求时,对nameservice的请求将类似于http://crm/foo。

prefixpath 过滤器

作用: 它的作用和stripprefix正相反,是在url路径前面添加一部分的前缀

spring:
  cloud:
    gateway:
      routes:
      - id: bds-lbs-service
        uri: lb://bds-lbs-service
        filters:
        - prefixpath=/lbs

这将会把/lbs添加到路由prefixpath_route匹配到的所有请求的路径的前面。

所以对/hello的请求将会被发送到/lbs/hello。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com