介绍
为 VeryNginx 开发了新的自定义动作模型,目前已经完成了前端的规则编辑器部分,剩下 Lua 部分还没完成,快的话差不多周日晚上可以和大家见面
现状
当前版本的 VeryNginx 可以配置一些自定义动作,例如
- 根据 URI 进行重定向
- 根据参数对请求进行过滤
- 根据 URI 对请求进行过滤
- 根据 IP 对请求进行过滤
- 根据 UserAgent 对参数进行过滤
这样进行配置有一些限制,例如并不能根据多个条件并列进行过滤,不能根据域名进行重定向等等...
改进
这次设计了新的自定义动作模型,由 Matcher 和 Action 组成。 Matcher 用来对请求进行匹配, Action 为要执行的动作。新结构的优势在于把所有的前置判断整合在一起来实现了,使复杂(组合)规则的实现变成了可能
Matcher
一个 Matcher 用来判断一个 Http 请求是否符合指定的条件, 一个 Matcher 可以包含一个或者多个约束条件,目前支持以下几种约束:
- 源 IP
- Domain
- UserAgent
- URI
当一个请求满足了 Matcher 中包含的全部条件时,即命中了这个 Matcher
Action
每个 Action 会引用一个 Matcher ,当 Matcher 满足时, Action 会被执行
新版本包含以下 Action
- Scheme Lock 将访问协议锁定为 Https 或者 Http
- Redirect 对请求进行重定向
- URI Rewrite 对请求的 URI 进行内部重写
- Filter 过滤器
其中 Filter 整合了原来的白名单和 waf 功能,可以实现更复杂的组合规则
结束
后续还会在这个框架中,继续添加更多的 Action 。目前访问频率限制已经排在计划中了,大家需要什么 Action ,也欢迎提出来
至于能用来干什么,看大家发挥啦~