首页/安全/安全设备配置速查/请求限速与并发控制
WAF 防护73 条

请求限速与并发控制

对接口设置速率与并发上限,防止单个来源或单一接口消耗过多后端资源。

安全设备配置速查安全更新于 2026-10-13

请求限速与并发控制是什么

限速是按维度给请求量设上限:某来源单位时间能发多少请求、某个接口同时允许多少并发。它的作用是防止单个来源或单个接口耗尽后端资源——一个爬虫、一段失控的脚本、一次批量导出都可能拖垮整个站点。限速与 WAF 规则的区别在于,它按「量」而不是按「内容」判断,因此对没有明显攻击特征的滥用量同样有效。参数设置的关键是区分接口成本:导出类接口的一次请求消耗远大于普通查询。

基本信息

限速维度源 IP、URL 或接口、账号或令牌(可识别时)
动作类型限速、排队、拒绝请求
适用范围公开接口、导出与报表接口、高成本查询、登录接口
参数要点速率与突发额度(burst)需按业务峰值设置
配套措施超限告警、来源定位与异常主机处置流程

典型使用场景

  • 登录接口防爆破:限制单位时间尝试次数,配合失败锁定
  • 数据导出接口保护:限制并发导出数,避免数据库被拖垮
  • 搜索与查询接口:限制单来源请求速率,防止爬虫高频抓取
  • 大促或活动期间:提前设定阈值,攻击时快速生效
  • API 开放平台:按调用方设置配额,保证服务公平使用
  • 异常用量定位:超限告警触发后找到对应主机或调用方

nginx 限速示例

nginx 限速示例
# 定义限速区:按客户端地址,10MB 共享内存,平均 10 请求每秒
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
# 定义并发连接数限制区
limit_conn_zone $binary_remote_addr zone=conn:10m;
server {
    location /api/ {
        limit_req zone=api burst=20 nodelay;   # 允许突发 20 个请求
        limit_conn conn 20;                    # 单来源最多 20 个并发连接
        proxy_pass http://backend;
    }
}

参数与效果

参数作用设置不当的后果
rate平均请求速率上限过严限制正常用户,过松起不到保护作用
burst允许的突发额度过小会让突发正常流量被拒
limit_conn单来源并发连接上限过小影响页面并发加载
作用维度按 IP 或按接口全局限速未区分接口成本,高成本接口仍被打满
用户经代理或统一出口访问时,按源地址限速会连带影响同一出口的其他用户,这类场景应改用账号或令牌维度限速。
burst 参数设置过小会让突发正常流量被直接拒绝,表现为用户偶发访问失败且难以复现。

易错点

  • burst 参数过小,突发正常流量被拒,用户偶发访问失败
  • 按 URL 全局限速未区分接口成本,高成本接口依旧容易被打满
  • 共享出口场景下按源地址限速,连带影响同出口的其他用户
  • 阈值按拍脑袋设置,攻击期间限速误伤正常业务
  • 限速只做拦截不做告警与定位,异常来源长期消耗资源

数据来源与参考

  • nginx 官方文档:ngx_http_limit_req_module
  • OWASP 自动化威胁防护
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌