写点什么

Soul 网关实践 02|选择器 & 规则介绍

用户头像
哼干嘛
关注
发布于: 2021 年 01 月 16 日

说明

  • 选择器和规则是 soul 网关中最灵魂的东西。掌握好它,就可以对任何流量进行管理。

  • 一个插件有多个选择器,一个选择器对应多个规则。

  • 选择器相当于对流量的第一次筛选,规则是最终的筛选

选择器

选择器配置示例


图片中的配置表示:当请求的 uri 前缀是 /http ,会转发到 https://gitee.com/shuaiqiyu/soul/

详细介绍:

  • 名称:为你的选择器起一个容易分辨的名字。

  • 类型:

  • custom:自定义流量,需要设置匹配方式与条件,符合条件的请求才会被进行流量管理。

  • full:全流量,不需要设置匹配方式与条件。

  • 匹配方式:表示条件的组合方式,有 and 和 or 两种方式可选。

  • 条件:筛选条件的配置。

  • uri 匹配(推荐)

  • uri 匹配是根据你请求路径中的 uri 来进行匹配,在接入网关的时候,前端几乎不用做任何更改。

  • 当使用 match 方式匹配时候,同 springmvc 模糊匹配原理相同。

  • 在选择器中,推荐使用 uri 中的前缀来进行匹配,而在规则中,则使用具体路径来进行匹配。

  • 该匹配方式的时候,在匹配字段名称可以任意填写,匹配字段值需要正确填写。

  • header

  • header 是根据你的 http 请求头中的字段值来匹配。

  • query

  • 这个是根据你的 uri 中的查询参数来进行匹配,比如 /test?a=1&b=2 ,那么可以选择该匹配方式。

  • 上述就可以新增一个条件,选取 query 方式 , a = 1 。

  • ip

  • 这个是根据 http 调用方的 ip 来进行匹配。

  • 尤其是在 waf 插件里面,如果发现一个 ip 地址有攻击,可以新增一条匹配条件,填上该 ip ,拒绝该 ip 的访问。

  • 如果在 soul 前面使用了 nginx 代理,为了获取正确的 ip ,参考 dev-iphost

  • host

  • 这个是根据 http 调用方的 host 来进行匹配。

  • 尤其是在 waf 插件里面,如果发现一个 host 地址有攻击,可以新增一条匹配条件,填上该 host ,拒绝该 host 的访问。

  • 如果在 soul 前面使用了 nginx 代理,为了获取正确的 ip ,参考 dev-iphost

  • post(不推荐使用)

  • 继续后续选择器:当多个选择器的时候,执行顺序小的优先执行。

  • 打印日志

  • 是否开启

规则

规则配置示例


图片中的配置表示:当请求的 uri/http/soul 时该规则被匹配,就会执行该规则,负载策略时 random

结合上面的选择器配置,当一个请求的 uri/http/soul ,会通过 random 的方式转发到 https://gitee.com/shuaiqiyu/soul/


扩展阅读

Soul 网关实践 01|把项目跑起来

用户头像

哼干嘛

关注

早日自由! 2018.09.30 加入

本职工作是后端开发,偶尔也写写前端和小程序

评论

发布
暂无评论
Soul 网关实践 02|选择器&规则介绍