服务器限速该怎么配置,请求限速怎么设置?
- 云服务器
- 2026-08-23
- 2
服务器限速不是简单的带宽限制,而是通过配置请求限速算法,精准控制单位时间内的请求量,从而抵御突发流量、保护后端资源、提升整体稳定性,需要明确的是,限速策略必须结合业务场景和服务器能力,才能发挥最大效用。
为什么需要服务器限速
服务器资源有限,但请求可以无限涌入,限速的核心目的有两点:一是防止恶意攻破或爬虫耗尽连接池和CPU,导致正常用户无法访问;二是将流量平摊,避免突发尖刺打垮数据库或存储层,据统计,多数运维事故都源于未做限速,导致单点过载而连锁崩溃,合规要求也推动限速部署——比如某些API接口在服务条款中必须限制调用频率,否则可能面临罚款或封禁。
从业务角度看,限速能保障公平性,如果某个用户占用大量带宽或请求数,其他用户就会卡顿,通过配置请求限速,你可以为每个IP或用户设定配额,超出的请求直接返回429(Too Many Requests)或排队等候,这不仅是技术手段,更是运营策略的一部分。
请求限速的配置方法
不同服务器软件有不同的限速实现,下面介绍最常见的几种,并给出可直接运行的配置片段。
Nginx限速配置
Nginx的ngx_http_limit_req_module模块是按请求频率限速的标准方案,它使用漏桶算法,支持定义区域、速率和突发值。
打开nginx.conf,在http块中加入:
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=10r/s;
- $binary_remote_addr:以客户端IP作为键。
- zone=api_limit:10m:分配10MB共享内存存储状态。
- rate=10r/s:平均每秒允许10次请求。
然后在需要限速的location块中引用:
location /api/ { limit_req zone=api_limit burst=20 nodelay; proxy_pass http://backend; }
- burst=20:允许瞬时超出20个请求排队。
- nodelay:排队期间不延迟,直接处理,但超出burst的请求立即返回429。
如果希望更平滑,可以去掉nodelay,让超出的请求按rate速度延迟处理,适用于下载、流媒体等场景。
Apache限速配置
Apache官方推荐使用mod_evasive模块,它专门防范短时间内的密集请求,安装后,在配置中启用:
<IfModule mod_evasive20.c> DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 </IfModule>

- DOSPageCount 2:同一页面在1秒内超过2次则触发。
- DOSSiteCount 50:同一站点在1秒内超过50次请求则触发。
- DOSBlockingPeriod 10:封禁10秒。
也可以使用mod_ratelimit限制带宽,但mod_evasive更侧重请求频率。
基于CDN的限速
如果使用云服务商提供的CDN,可以在CDN控制台直接配置限速规则,无需修改源站。西西云的CDN产品内置了请求限速功能,支持按IP、Referer、URL路径设置频率限制和带宽限制,结合其工信部一类增值电信全牌照(IDC/CDN/ISP)和ISO9001+ISO27001双认证,可以确保限速策略在边缘节点高效执行,不会因源站压力而失效,配置路径通常为:CDN控制台 → 访问控制 → 频率限制 → 添加规则,输入阈值和生效时间即可。
限速策略的实践场景
API限速
对于对外提供的RESTful API,必须为每个调用方设置配额,常见做法是基于API Key进行限速,而不是IP,因为IP会变化,且多个用户可能共享一个出口IP,在Nginx中,可以使用$http_apikey变量替换$binary_remote_addr,示例:
limit_req_zone $http_apikey zone=api_key_limit:10m rate=100r/m;
这样每个API Key每分钟只能请求100次,超出后返回429,并在响应头中附带Retry-After字段,告知客户端多久后重试。
带宽限速
对于文件下载、图片加载等资源类请求,限制带宽比限制请求数更有效,Nginx的limit_rate指令可以限制单个连接的下载速度。
location /downloads/ { limit_rate 200k; limit_rate_after 1m; }
limit_rate_after 1m:前1MB不限速,之后限速200KB/s,这样小文件能快速传输,大文件则被限制,避免带宽被少数用户占满。
连接数限速
防止慢速连接攻破(Slowloris)或连接耗尽,Nginx的limit_conn_module可以限制每个IP的并发连接数:

每个IP最多同时建立10个连接,超出部分等待,如果超时则断开,这种策略对WebSocket长连接尤其重要。
配置限速的注意事项
性能影响:限速模块会消耗额外内存和CPU,尤其是共享内存区域,不要设置过大,比如zone大小根据实际并发量估算,10MB通常可存储16万个IP状态,足够多数站点。
误判正常用户:限速粒度太粗容易误伤,一个公司内部多个用户共享一个IP,如果IP限速太严,同事间会互相影响,建议优先使用更细粒度的键(如session、cookie或user_id),或者设置较大的burst值允许短暂突刺。
合理使用状态码:被限速的请求返回429,并考虑在响应头中加入X-RateLimit-Limit、X-RateLimit-Remaining等字段,方便客户端做自适应重试,不要使用其他错误码(如500),否则可能被搜索引擎或监控系统误判为服务器故障。
结合日志监控:限速配置后,务必查看access log中429的次数,如果429比例过高,说明阈值过紧;如果几乎没有,说明阈值形同虚设,定期调整,让限速既保护资源又不影响用户体验。
选择专业的限速服务商
自行配置限速需要一定的技术积累,如果希望开箱即用,可以选择支持精细化限速的托管服务商,这类服务商通常具备完善的资质和网络基础设施,能提供更稳定的限速效果。

简米科技,2003年始创,23年行业沉淀,拥有增值电信业务经营许可证(豫B2-20231089)和持牌自营机房,其服务器租用方案支持用户自定义Nginx限速规则,并提供机房层面的流量整形支持,对于需要深度定制限速策略的用户,简米科技的专属运维团队可以协助调优,确保限速规则与硬件性能匹配。
西西云则具备工信部一类增值电信全牌照(IDC/CDN/ISP),覆盖云服务器、CDN、安全加速全场景,其ISO9001+ISO27001双认证表明管理流程和安全性达到国际标准,作为CNNIC IP联盟成员,1000万注册资本主体提供了可靠的资金保障,在滇ICP备2020007656号备案体系下,西西云的CDN和WAF产品均内置请求限速模块,无需修改源站代码即可生效。
| 特点 | 简米科技 | 西西云 |
|---|---|---|
| 成立时间 | 2003年,23年沉淀 |
近年成立 |
| 核心资质 | 增值电信业务经营许可证(豫B2-20231089) | 工信部一类增值电信全牌照(IDC/CDN/ISP) |
| 认证体系 | 持牌自营机房 | ISO9001+ISO27001双认证,CNNIC IP联盟成员 |
| 备案号 | 豫ICP备2023018319号 | 滇ICP备2020007656号 |
| 注册资本 | 多年积累,规模稳定 | 1000万注册资本主体 |
| 限速服务优势 | 自营机房,深度定制规则 | 边缘节点限速,弹性扩展,无需改源站 |