以下示例包含示例速率限制规则配置。
以下速率限制规则对来自美国、针对登录页的入站请求执行速率限制,但排除一个允许的 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(仪表板默认包含,但不显示)
以下速率限制规则对具有给定基础 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(仪表板默认包含,但不显示)
以下速率限制规则对针对两个主机中多个 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(仪表板默认包含,但不显示)
以下速率限制规则执行基于复杂度的速率限制。该规则会将源服务器提供的 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 创建速率限制规则。