server:
port: 8020
spring:
application:
name: api-gateway2
cloud:
nacos:
discovery:
server-addr: localhost:8848
gateway:
routes:
- id: gateway-service2
uri: lb://cloud-nacos-server
predicates:
- Path=/ass/**
filters:
- StripPrefix=1
上面代码是gateway整合alibaba的nacos
id:唯一标识,不重复即可
uri: 如果是lb:开头的协议,需要从注册中心去拉取注册的微服务名
predicates:断言,有多种方式,上述代码使用的是url匹配的方式。
filters:StripPrefix: 这个比较重要,不理解会让请求报404 取值有两种 值为1时 在网关转发到另一个服务的时候不携带/ass/>l浏览器请求路径是 http://host:port/ass/hello, 网关真实路径是http://cloud-nacos-server/hello 不携带前缀 /ass
值为0时 在网关转发到另一个服务的时候携带/ass/>l浏览器请求路径是 http://host:port/ass/hello, 网关真实路径是http://cloud-nacos-server/ass/hello 不携带前缀 /ass
=======>gateway整合eureka时
server:
port: 8050
spring:
application:
name: api-gateway
cloud:
gateway:
routes:
- id: gateway-service
uri: lb://PRODUCT
predicates:
- Path=/ass/**
filters:
- StripPrefix=1
eureka:
client:
service-url:
defaultZone: http://localhost:8080/eureka/
instance:
prefer-ip-address: true
instance-id: ${spring.application.name}@${spring.cloud.client.ip-address}@${server.port}
management:
endpoint:
conditions:
enabled: true
endpoints:
web:
exposure:
exclude: "*"
注意点:
uri: lb://PRODUCT 微服务名一定要大写 否则报404
================》nginx整合多网关实现高可用》