一、后置谓词路由工厂
spring:
cloud:
gateway:
routes:
- id: after_route
uri: https://example.org
predicates:
- After=2017-01-20T17:42:47.789-07:00[America/Denver]
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有在规定的时间之后的请求才会访问到这个路由
二、
spring:
cloud:
gateway:
routes:
- id: before_route
uri: https://example.org
predicates:
- Before=2017-01-20T17:42:47.789-07:00[America/Denver]
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有在规定的时间之前的请求才会访问到这个路由
三、
spring:
cloud:
gateway:
routes:
- id: between_route
uri: https://example.org
predicates:
- Between=2017-01-20T17:42:47.789-07:00[America/Denver], 2017-01-21T17:42:47.789-07:00[America/Denver]
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有在规定的时间之中的请求才会访问到这个路由
四、
spring:
cloud:
gateway:
routes:
- id: cookie_route
uri: https://example.org
predicates:
- Cookie=chocolate, ch.p
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有转发过来的请求头中必须含有“chocolate”和“ch.p”才能访问这个路由
五、
spring:
cloud:
gateway:
routes:
- id: header_route
uri: https://example.org
predicates:
- Header=X-Request-Id, \d+
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,请求头中header必须含有X-Request-Id,
并且其值为数字的请求才会匹配到这个路由
六、
spring:
cloud:
gateway:
routes:
- id: host_route
uri: https://example.org
predicates:
- Host=**.somehost.org,**.anotherhost.org
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有请求的主机名匹配**.somehost.org
或**.anotherhost.org
的请求才会匹配到这个路由。
七、
spring:
cloud:
gateway:
routes:
- id: method_route
uri: https://example.org
predicates:
- Method=GET,POST
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有请求的方法体必须用GET或者POST方法才可以匹配到这个路由
八、
spring:
cloud:
gateway:
routes:
- id: path_route
uri: https://example.org
predicates:
- Path=/red/{segment},/blue/{segment}
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有请求的路径匹配到了 /red/{segment}
或/blue/{segment}
的请求才会匹配到这个路由,其中{segment}
是通配符,表示匹配路径中的任意部分。
这个路由会匹配以下请求路径:/red/1、/red/1/、/red/blue、/blue/green。
如果matchTrailingSlash设置为false,那么请求路径/red/1/将不会被匹配。
九、
spring:
cloud:
gateway:
routes:
- id: query_route
uri: https://example.org
predicates:
- Query=green
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有请求中包含 green 的参数查询的请求才会匹配到这个路由
spring:
cloud:
gateway:
routes:
- id: query_route
uri: https://example.org
predicates:
- Query=red, gree.
上述路由匹配的条件是,请求中包含一个名为"red"的查询参数,其值与"gree."的正则表达式匹配。因此,"green"和"greet"都会匹配。
十、
spring:
cloud:
gateway:
routes:
- id: remoteaddr_route
uri: https://example.org
predicates:
- RemoteAddr=192.168.1.1/24
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://example.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有来自IP 192.168.1.1/24 的请求才会匹配到这个路由
十一、
spring:
cloud:
gateway:
routes:
- id: weight_high
uri: https://weighthigh.org
predicates:
- Weight=group1, 8
- id: weight_low
uri: https://weightlow.org
predicates:
- Weight=group1, 2
id: *** 用于在配置中引用这个特定的路由,这是路由的唯一标识符,具体起什么名字都可以,主要是能一眼看懂这个是什么路由
uri: 这里指定了路由转发的目标URI,就是服务的地址,要转发到哪一个服务的路由。在这个示例中,请求将被转发到https://weighthign.org
predicates:
这里定义了路由的谓词,即规定了请求需要满足的条件才会匹配到这个路由。在这个示例中,只有权重为8的请求才会匹配到 weight_high 路由,只有权重为2的才能匹配到weight_low 路由