Spring Cloud Gateway配置

本文介绍了Spring Cloud Gateway的配置方法,包括简写和全参数展开方式。此外,详细讲解了路由工厂的各种匹配条件,如时间、Cookie、Header、Host、方法、路径、查询参数和远程地址。同时,还阐述了网关过滤器工厂的多种功能,如添加、删除请求或响应头,重写路径,限流,断路器等,帮助读者理解如何实现复杂的路由和过滤逻辑。
摘要由CSDN通过智能技术生成

![](https://img-blog.csdnimg.cn/img_convert/6cc657529fb3920364d88e221ab8a562.png#align=left&display=inline&height=595&margin=[object Object]&originHeight=595&originWidth=443&size=0&status=done&style=none&width=443)

客户端发送请求到gateway,由gateway handler mapping进行路由,发送到gateway web handler。这个handler处理请求相关的filter链。filter分“pre”和“post”两种处理逻辑。

配置

配置predicates和filters有两种方式:简写和全参数展开。

简写方式

公式:name=name,regexp,例如

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - Cookie=mycookie,mycookievalue

全参数展开方式

如果yaml文件标准一样进行配置,通常会有name和args两个键,args是一个map的键值对组配置predicate或者filter。如下:

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - name: Cookie
          args:
            name: mycookie
            regexp: mycookievalue

路由工厂

每种路由的判断依据都是根据Http请求的不同属性。

  • 匹配某时间之后的请求
  • 匹配某个时间之前的请求
  • 匹配两个时间之间的请求
  • 匹配请求包含指定Cookie
  • 匹配请求包含指定Header
  • 匹配特定Host
  • 匹配请求方法
  • 匹配请求路径
  • 匹配查询参数
  • 匹配远程地址
  • 根据权重路由

匹配某时间之后的请求

spring:
  cloud:
    gateway:
      routes:
      - id: after_route
        uri: https://example.org
        predicates:
        - After=2017-01-20T17:42:47.789-07:00[America/Denver]

**

匹配某个时间之前的请求

spring:
  cloud:
    gateway:
      routes:
      - id: before_route
        uri: https://example.org
        predicates:
        - Before=2017-01-20T17:42:47.789-07:00[America/Denver]

匹配两个时间之间的请求

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]

匹配请求包含指定Cookie

value为正则表达式

spring:
  cloud:
    gateway:
      routes:
      - id: cookie_route
        uri: https://example.org
        predicates:
        - Cookie=chocolate, ch.p

匹配请求包含指定Header

value为正则表达式

spring:
  cloud:
    gateway:
      routes:
      -
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值