跳转到内容
搜索文档

速率限制规则示例

最后更新 查看 MarkdownAgent 设置

以下示例包含示例速率限制规则配置。

示例 1

以下速率限制规则对来自美国、针对登录页的入站请求执行速率限制,但排除一个允许的 IP 地址。

当入站请求匹配时:

字段 运算符
URI Path equals /login And
Country equals United States And
IP Source Address does not equal 192.0.0.1

如果使用表达式编辑器:
(http.request.uri.path eq "/login" and ip.src.country eq "US" and ip.src ne 192.0.0.1)

使用相同特征:

  • IP
  • Data center ID(仪表板默认包含,但不显示)

示例 2

以下速率限制规则对具有给定基础 URI 路径的入站请求执行速率限制,按 IP 地址和提供的 API 密钥递增计数。

当入站请求匹配时:

字段 运算符
URI Path contains /product And
Request Method equals POST

如果使用表达式编辑器:
(http.request.uri.path contains "/product" and http.request.method eq "POST")

使用相同特征:

  • IP
  • Header value of > x-api-key
  • Data center ID(仪表板默认包含,但不显示)

示例 3

以下速率限制规则对针对两个主机中多个 URI 路径的请求执行速率限制,并排除已知机器人。请求速率基于 IP 地址和 User-Agent 值。

当入站请求匹配时:

(http.request.uri.path eq "/store" or http.request.uri.path eq "/prices") and (http.host eq "mystore1.com" or http.host eq "mystore2.com") and not cf.client.bot

使用相同特征:

  • IP
  • Header value of > user-agent
  • Data center ID(仪表板默认包含,但不显示)

示例 4

以下速率限制规则执行基于复杂度的速率限制。该规则会将源服务器提供的 my-score HTTP 响应头纳入计算,以得出具有给定 API 密钥的客户端的总复杂度分数。

当匹配速率限制规则的计数表达式时(在本例中,由于未提供计数表达式,与规则表达式相同),会更新总分计数器。当该总分在一分钟内超过 400 时,之后的客户端请求将在 10 分钟内被阻止。

当入站请求匹配时:

字段 运算符
URI Path wildcard /graphql/*

如果使用表达式编辑器:
(http.request.uri.path wildcard "/graphql/*")

使用相同特征:

  • Header value of > x-api-key
  • Data center ID(仪表板默认包含,但不显示)

当速率超过时:Complexity based

  • Score per period: 400
  • Period: 1 minute
  • Response header name: my-score

然后采取操作:

  • Choose action: Block

具有以下行为:Block for the selected duration

  • Duration: 10 minutes

有关此规则配置的 API 示例,请参阅 通过 API 创建速率限制规则

这篇文档对您有帮助吗?