GateWay坑——context-path

环境准备

eureka,gateway,要路由的服务(bit-msa-pasm-api)

正确路由

context-path和application.name不一致

在这里插入图片描述

注册中心

在这里插入图片描述

Gateway网关设置

在这里插入图片描述

访问结果

直接访问bit-msa-pasm-api
在这里插入图片描述
通过网关访问访问bit-msa-pasm-api
在这里插入图片描述

路由失败

context-path和application.name一致

在这里插入图片描述

注册中心

在这里插入图片描述

Gateway网关设置

在这里插入图片描述

访问结果

直接访问bit-msa-pasm-api
在这里插入图片描述

通过网关访问访问bit-msa-pasm-api
在这里插入图片描述

路由失败-原因

若配置路由URI为lb,则注册中心服务名称不能和server.servlet.context-path名称一致,否则contextPath会被改写为空字符串;

路由失败-解决方案

gateway.discovery.locator

重写过滤链

server:
 port: 8899
spring:
 cloud:
   gateway:
     discovery:
       locator:
         #是否与服务发现组件进行结合,通过serviceId转发到具体实例
         #是否开启基于服务发现的路由规则
         enabled: true
         ##表示将请求路径的服务名配置改成小写 ,因为服务注册的时候,向注册中心注册时将服务名转成大写的了
         lowerCaseServiceId: true
         filters:
           - StripPrefix=0
     routes:
       - id: after_route
         uri: lb://bit-msa-pasm-api
         predicates:
           - Path=/bit-msa-pasm-api/service/**

方案一

在这里插入图片描述

在这里插入图片描述

方案二

在这里插入图片描述
在这里插入图片描述

包装一层前缀

server:
  port: 8899
spring:
  cloud:
    gateway:
      discovery:
        locator:
          #是否与服务发现组件进行结合,通过serviceId转发到具体实例
          #是否开启基于服务发现的路由规则
          enabled: true
          ##表示将请求路径的服务名配置改成小写 ,因为服务注册的时候,向注册中心注册时将服务名转成大写的了
          lowerCaseServiceId: true
      routes:
        - id: after_route
          uri: lb://bit-msa-pasm-api
          predicates:
            - Path=/xxx/bit-msa-pasm-api/service/**
          filters:
            - StripPrefix=1

在这里插入图片描述

在这里插入图片描述

  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值