springclould gateway 配置

spring:
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true # 启用自动根据服务ID生成路由
          lower-case-service-id: true # 设置路由的路径为小写的服务ID
      # 一个请求满足多个路由的谓词条件时,请求只会被首个成功匹配的路由转发    
      routes: # 路由
        - id: time_route
          uri: https://www.baidu.com/
          predicates:
            # Predicate 支持设置一个时间,在请求进行转发的时候,可以通过判断在这个时间之前或者之后进行转发 可以用在限时抢购的一些场景中。
            #  - After=2018-01-20T06:06:06+08:00[Asia/Shanghai]
            #  - Before=2022-01-20T06:06:06+08:00[Asia/Shanghai]
               - Between=2021-01-20T06:06:06+08:00[Asia/Shanghai], 2021-09-13T15:55:06+08:00[Asia/Shanghai]
        - id: cookie_route
          uri: https://www.baidu.com/
          # 通过 Cookie 匹配
          predicates:
            - Cookie=busl, app.a   
        - id: header_route
          uri: https://www.baidu.com/
          # Header Route Predicate 和 Cookie Route Predicate 一样,也是接收 2 个参数,
          # 一个 header 中属性名称和一个正则表达式,这个属性值和正则表达式匹配则执行。 \d:数字 +:出现至少1次
          predicates:
            - Header=X-Request-Id, \d+
        - id: host_route
          uri: https://www.baidu.com/
          #  通过 Host 匹配        
          predicates:
            - Host=**.jetbrains.com
        - id: method_route
          uri: https://www.baidu.com/
          # 可以通过是 POST、GET、PUT、DELETE 等不同的请求方式来进行路由。
          predicates:
            - Method=POST
        - id: host_route
          uri: https://www.baidu.com/
          # 通过请求路径匹配 
          predicates:
            - Path=/foo/{segment}
          # 通过请求参数匹配
        - id: query_route
          uri: https://www.baidu.com/
          # 当请求中包含 keep 属性并且参数值是以 pu 开头的长度为三位的字符串才会进行匹配和路由。
          # 去掉, pub. 请求汇总带有 smile 参数即会匹配路由,不带 smile 参数则不会匹配。
          predicates:
            - Query=smile, pub.
        - id: remoteaddr_route
          uri: https://blog.csdn.net
          # 通过请求 ip 地址进行匹配
          # Predicate 也支持通过设置某个 ip 区间号段的请求才会路由,
          # RemoteAddr Route Predicate 接受 cidr 符号 (IPv4 或 IPv6) 字符串的列表(最小大小为 1),
          # 例如 192.168.0.1/16 (其中 192.168.0.1 是 IP 地址,16 是子网掩码)。
          predicates:
            - RemoteAddr=192.168.1.104
        # 组合使用
        - id: host_foo_path_headers_to_httpbin
          uri: https://blog.csdn.net
          predicates:
          - Host=**.foo.org
          - Path=/headers
          - Method=GET
          - Header=X-Request-Id, \d+
          - Query=foo, ba.
          - Query=baz
          - Cookie=chocolate, ch.p
          - After=2018-01-20T06:06:06+08:00[Asia/Shanghai]
management:
  endpoints:
    web:
      exposure:
        include: "*"            

上一篇:Gateway路由断言(predicates)工厂


下一篇:使用spring-data-jpa碰到的坑