引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
配置yml
server:
port: 9999 # 网关端口
spring:
application:
name: gateway # 服务名称
cloud:
nacos:
server-addr: localhost:8848 # nacos地址
gateway:
routes: # 网关路由配置
- id: pi-service1 # 路由id,自定义,只要唯一即可
# uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
uri: http://localhost:8001 # 路由的目标地址 lb就是负载均衡,后面跟服务名称
predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
- Path=/user/** # 这个是按照路径匹配,只要以/user/开头就符合要求
- id: api-service2
uri: http://localhost:8002
predicates:
- Path=/order/**
同上
server:
port: 10001 # 网关端口
spring:
application:
name: gateway # 服务名称
cloud:
gateway:
routes: # 网关路由配置
- id: api-service1 # 路由id,自定义,只要唯一即可
# uri: http://127.0.0.1:8081 # 路由的目标地址 http就是固定地址
uri: lb://api-service1 # 路由的目标地址 lb就是负载均衡,后面跟服务名称
predicates: # 路由断言,也就是判断请求是否符合路由规则的条件
- Path=/product/** # 这个是按照路径匹配,只要以/product/开头就符合要求
filters:
- AddRequestHeader=token,wahahaawahaha
- AddRequestParameter=username, ergou
- SetStatus=404
# - RewritePath=/red(?<segment>/?.*), $\{segment}
- StripPrefix=2
- id: api-service2
uri: lb://api-service2
predicates:
- Path=/order/**
eureka:
client:
service-url:
defalutZone: http://localhost:8761/eureka
properties
server.port=9999
spring.application.name=gateway
spring.cloud.nacos.server-addr=localhost:8848
spring.cloud.gateway.routes[0].id=pi-service1
spring.cloud.gateway.routes[0].uri=http://localhost:8001
spring.cloud.gateway.routes[0].predicates[0]=Path=/user/**
spring.cloud.gateway.routes[1].id=api-service2
spring.cloud.gateway.routes[1].uri=http://localhost:8002
spring.cloud.gateway.routes[1].predicates[0]=Path=/order/**