application.yml
server:
port: 10010
spring:
application:
name: gateway-server
cloud:
gateway:
routes:
- id: coms
uri: lb://eurka-com
predicates: #谓词/断言,限制路由请求
#(The After Route Predicate Factory),在此时间之后发送才可以请求成功
- After=2017-01-20T17:42:47.789-07:00[America/Denver]
#(The Before Route Predicate Factory),在此时间之前发送才可以请求成功
- Before=2017-01-20T17:42:47.789-07:00[America/Denver]
#(The Between Route Predicate Factory),在此时间段之间请求才可以成功
- Between=2023-01-20T17:42:47.789-07:00[America/Denver], 2024-01-21T17:42:47.789-07:00[America/Denver]
#(The Cookie Route Predicate Factory),携带cookie且字段名为cookieName,值匹配正则cookieValue
- Cookie=cookieName, cookieValue
#(The Header Route Predicate Factory),请求头中存在header字段名为HeaderName,值匹配正则HeaderValue
- Header=HeaderName, HeaderValue
#(The Host Route Predicate Factory),请求路径符合规则,例如:www.aaaHoste.com, hello.bbbHost.com
- Host=**.aaaHost.com,**.bbbHost.com
#(The Method Route Predicate Factory),请求方式符合规则,如例只允许get/post请求通过
- Method=GET,POST
#(The Path Route Predicate Factory),路径符合规则才可以请求成功,例如:/comsSer/coms,/login/admin;pathValue的值可用 ServerWebExchangeUtils.getPathPredicateVariables(exchange).get("pathValue") 来获取到
- Path=/comsSer/**,/login/{pathValue}
#(The Query Route Predicate Factory),请求携带的参数符合规则
- Query=name #请求携带的参数中需包含name字段,
- Query=name,Lucy. #请求携带的参数中需包含name字段,且值符合正则Lucy.,例如LucyAAA,Lucyfff;
#(The RemoteAddr Route Predicate Factory),请求ip符合规则,如:192.168.0.1到192.168.0.24
- RemoteAddr=192.168.0.1/24
#(The Weight Route Predicate Factory),所有请求将会被分流,20%会分流到该地址eurka-com下,80%会分流到eurka-com2
- Weight=group1, 2
- id: coms2
uri: lb://eurka-com2
predicates:
- Weight=group1, 8
filters: #接受到的请求去除前一段路由,即将/comsSer去除,例如符合断言规则的请求路径localhost:10010//comsSer/com,转发后路径为localhost:8081//comsSer/com,但在eurka-com服务中的路径为/com,通过StripPrefix去除掉前一段路由,变为localhost:8081//com即可转发请求成功
- StripPrefix=1