springcloud gateway网关多路由配置访问404解决方案

首先说说我遇到的情况,我是在gateway网关服务中配置了Sagger2,然后再进行多路由配置。

先看看一开始的错误配置

uri:
  admin: lb://admin-client
  device: lb://device-client
server:
  port: 8799
spring:
  cloud:
    gateway:
      routes:
        - id: host_route
          uri: ${uri.admin}
          predicates:
            - Path=/**
          filters:
            - name: Hystrix
              args:
                name: fallbackcmd
                fallbackUri: forward:/fallback

        - id: device_route
          uri: ${uri.device}
          predicates:
            - Path=/**
          filters:
            - name: Hystrix
              args:
                name: fallbackcmd
                fallbackUri: forward:/fallback
         

以上配置重点在 predicates 的 path上, 这个path的意思是发送指定路径会匹配指定路由,我两个都是/**,它默认会每次都访问第一个路由,所以我的swagger2上怎么样也请求不到第二个路由的东西,所以需要给两者做出区分

那么将上方 path 改为 /admin/** ,下方path 改成 /device/** ,这样改了后的确是可以访问到了,但每次请求都会带上path的内容作为前缀,这时再加上一个参数 StripPrefix ,就能达到我们所想的效果,即指定了路由又没增加多余的东西在路径上。

StripPrefix=1 ,会让 /admin/a 的路径变成/a,等于2等于3则依此类推。

正确的配置如下

spring:
  cloud:
    gateway:
      routes:
        - id: host_route
          uri: ${uri.admin}
          predicates:
            - Path=/admin/**
          filters:
            - name: Hystrix
              args:
                name: fallbackcmd
                fallbackUri: forward:/fallback
            #去除/admin
            - StripPrefix=1

        - id: device_route
          uri: ${uri.device}
          predicates:
            - Path=/device/**
          filters:
            - name: Hystrix
              args:
                name: fallbackcmd
                fallbackUri: forward:/fallback
            #去除/device
            - StripPrefix=1

 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值