限流限速

限流和限速都是很常见的需求,可以保护系统在遭遇突发流量或者恶意攻击下,依然可以正常提供服务。

以下是几个常用的限流和限流的场景,都可以在 Edge Admin 控制台的界面上添加规则来实现,稍后我们会介绍下基本的操作。

  1. 限制请求速率
  2. 限制单位时间内的请求数
  3. 延迟请求
  4. 拒绝客户端请求
  5. 限制响应数据的速率
  6. 限制 SSL 握手速率

其中第 5 个是用于响应的规则,其他的都是用于请求的规则。

除了第 6 个只能选择客户端 IP 地址作为限制的关键字外,其他动作都可以有更多的关键字以供选择:客户端 IP 地址、URI、URI 参数、或者请求的 cookie。

需要注意的是,这里所有的限流和限速规则,都是在应用内生效的,并不会像跨应用生效。这一点和 NGINX 并不一样。

比如一个客户端触发了 A 应用的限速规则,那么这个客户端还是可以正常访问 B 应用的。

基本操作

下图是页面规则页面,你有两种方式来新建规则:

  1. 可以选择手写 Edge 语言来更灵活的设置前置规则集和后置规则集;
  2. 也可以通过页面来选择条件和动作来生成。

我们主要用第二种方法来生成限流和限速的规则。我们可以点击 新建规则 按钮。

这个就是新建规则的页面,它包含了不少内容:Action、WAF、Proxy、Cache 和 Content, 以及是否在某些条件下触发上述规则。

限流和限速的规则都在动作中,上面列出来的前五个场景,都可以在这里找到。