Gateway路由规则

本文详细介绍了SpringCloudGateway中如何使用后置谓词来配置路由规则,包括时间范围、Cookie、Header、Host、请求方法、路径、查询参数、IP地址和权重等条件,以实现灵活的路由转发。
摘要由CSDN通过智能技术生成

一、后置谓词路由工厂
 

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 路由

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值