{{< details >}}

  • Tier: 基础版,专业版,旗舰版
  • Offering: 私有化部署

{{< /details >}}

{{< history >}}

  • 引入于极狐GitLab 17.1,使用名为 rate_limiting_user_endpoints功能标志。默认禁用。
  • 在极狐GitLab 17.10 中增加了对于自定义速率限制的支持。

{{< /history >}}

配置每分钟的速率限制

您可以配置每分钟的速率限制,针对每个 IP 地址和每个用户,适用于以下 用户 API 的请求。

{{< alert type=”flag” >}}

此功能的可用性受控于功能标志。更多信息,可查看历史。此功能仅为测试所用,还未生产就绪。

{{< /alert >}}

限制 默认值
GET /users/:id/followers 每分钟 100 次
GET /users/:id/following 每分钟 100 次
GET /users/:id/status 每分钟 240 次
GET /users/:id/keys 每分钟 120 次
GET /users/:id/keys/:key_id 每分钟 120 次
GET /users/:id/gpg_keys 每分钟 120 次
GET /users/:id/gpg_keys/:key_id 每分钟 120 次

更改速率限制:

  1. 在左侧边栏底部,选择 管理员
  2. 选择 设置 > 网络
  3. 展开 用户 API 速率限制
  4. 为任何可用的速率限制设置值。速率限制是每分钟、每用户的认证请求和每 IP 地址的未认证请求。输入 0 以禁用速率限制。
  5. 选择 保存更改

每个速率限制:

  • 如果请求是认证的,则适用于每个用户。
  • 如果请求是未认证的,则适用于每个 IP 地址。
  • 可以设置为 0 以禁用速率限制。

日志:

  • 超过速率限制的请求记录到 auth.log 文件。
  • 速率限制修改记录到 audit_json.log 文件。

示例:

如果您为 GET /users/:id/followers 设置了 150 的速率限制,并在一分钟内发送了 155 个请求,最后五个请求将被阻止。一分钟后,您可以继续发送请求,直到再次超过速率限制。