限制请求速率

改写规则的下拉列表里面有很多动作,它们都已经分类整理好了。其中有一类是“限制请求动作”, 里面的动作就是用来控制请求的。我们先选择对请求速度的控制,也就是限制请求速率

限制请求速率是基于漏桶原理来实现的,我们通过三个参数来对请求进行控制:

  1. 关键字: 默认是终端的 IP 地址,可以通过下拉框选择 URI、URI 参数或者是 Cookie。选择URI 参数或者是 Cookie 的话, 会需要多指定一个对应的 Argument 字段;
  2. 调节于: 低于这个速率的请求不会做任何限制;大于这个速率但小于拒绝于的请求,则会被延迟执行;
  3. 拒绝于: 大于这个速率的请求会直接返回503的 http 状态码给终端,意味着请求被拒绝。

后面两个参数的默认单位都是请求每秒,可以选择请求每分钟

如果它们两个的值设置一样,超过设置的请求就直接被拒绝,没有延迟来做缓冲。

默认情况下,这个动作是无条件执行的,也就是这个 app 的所有请求都会被限速。 这样的规则过于粗犷,我们可以用下面的方法来指定更为精准的条件的控制。

动作类似,条件里面也是分门别类整理好的,按照 URI、请求、响应、终端信息这些相关的条件来分组。 这里我们选择终端信息里面的国家来举例,下面的条件是对来自日本的请求才执行上面设置的动作:

这里输入日本的国家缩写 JP, 所有大洲、国家、省份、城市的缩写可以从 Edge 的语言文档中获取:

设置好了动作和条件,我们点击右下方的创建按钮,规则就设置成功了。页面会自动跳转回改写规则页面。