server:
port: 6100
spring:
application:
name: gateway
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
gateway:
discovery:
locator:
enabled: false # gateway关闭服务注册和发现
lowerCaseServiceId: true # 请求路径上的服务名配置为小写
routes:
- id: provider
uri: lb://provider
predicates:
- Path=/provider1/**
filters:
- StripPrefix=1
- id: consumer
uri: lb://consumer
predicates:
- Path=/consumer/**
filters:
- StripPrefix=1
在上面的配置中,配置了一个Path 的predict,将以/provider1/**开头的请求都会转发到uri为
lb://provider 的地址上,lb://provider 即 provider 服务的负载均衡地址,
并用StripPrefix的filter 在转发之前将/provider1去掉。
同时将spring.cloud.gateway.discovery.locator.enabled改为false,
如果不改的话,之前的
http://127.0.0.1:6100/provider/testProvider 、
http://127.0.0.1:6100/provider1/testProvider 这样的请求地址也能正常访问,
因为这时为每个服务创建了2个router。