Soul 网关实践 02|选择器 & 规则介绍
说明
选择器和规则是 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/
扩展阅读
评论