docs/配置 Web 应用访问限流
更新于 2026-10阅读约 6 分钟

配置 Web 应用访问限流

1 为何要配置访问限流

访问限流通过控制单位时间内到达 Web 服务器的请求数量,保护服务器资源、确保服务持续可用、提高用户体验并防御恶意攻击:

  • 保护服务器资源:避免请求过多导致过载,保护 CPU、内存、带宽不被耗尽;
  • 提高服务质量:高并发下依然能提供稳定快速的响应;
  • 防止恶意攻击:在一定程度上防御 DDoS 之类靠海量请求拖垮服务器的手法;
  • 维护公平性:防止个别用户或程序占用过多资源;
  • 控制成本:按使用量付费的云服务可避免突发流量带来费用激增;
  • 优化用户体验:避免流量高峰时响应缓慢或服务不可用。

2 站点访问限流配置

限流配置位于 http 节点下的 servers_limit:

{
  "http": {
    "include": "mime.types",
    "servers_limit": {
      "limit": 1000000,
      "burst": 5000000,
      "max_body_size": 1048576,
      "max_header_size": 4096
    },
    "server": [
      {
        "listen": 7000,
        "server_name": "localhost",
        "location": [
          {
            "url": "/api1",
            "type": "rewrite",
            "rewrite": "http://xxxx.com"
          }
        ]
      }
    ]
  }
}

servers_limit 表示启用站点限流:

配置项说明单位 / 默认值
limit持续请求最大速率以秒(s)为单位
burst瞬时请求限制量以秒(s)为单位
max_body_size上传文件大小限制以 byte 为单位,默认 32K
max_header_size请求头大小限制以 byte 为单位,默认 4K

3 触发规则

当某个 IP 访问站点的速率超过 limit,或请求量超过 burst 时,该 IP 会被加入黑名单并禁止访问。

限流触发后会直接进入 IP 黑名单(返回 403 BLACK BAN),调试阶段不要把 limit 与 burst 设得过小,否则容易把自己封掉。

4 相关阅读