登录
首页 >  文章 >  php教程

宝塔面板设置全局访问速率限制方法

时间:2026-04-03 15:42:14 218浏览 收藏

本文详细介绍了在宝塔面板中为所有网站统一设置全局访问速率限制的四种实用方法——从直接编辑Nginx主配置添加`limit_req_zone`规则、通过独立include文件集中启用限速策略,到利用宝塔防火墙插件图形化开启频率防护,再到用curl命令快速验证503/429响应是否生效,帮助运维人员高效抵御恶意刷量、爬虫骚扰和初级DDoS试探,兼顾安全性、灵活性与操作便捷性。

如何在宝塔面板中配置服务器级的全局访问速率限制?

如果您在宝塔面板中希望限制所有网站对服务器的请求频率,防止恶意刷量或DDoS试探,则需在Nginx全局配置层面设置访问速率限制。以下是实现该目标的具体步骤:

一、通过Nginx主配置文件添加limit_req_zone指令

该方法在Nginx全局上下文(http块)中定义共享内存区域与限速规则,适用于所有站点,无需逐站修改。宝塔默认不开放直接编辑nginx.conf的界面入口,需通过命令行或文件管理器操作主配置文件。

1、使用宝塔面板的【文件】功能,定位到/www/server/nginx/conf/nginx.conf路径。

2、在http {块的开头位置(即所有server块之前),插入以下两行配置:

limit_req_zone $binary_remote_addr zone=global_rate:10m rate=10r/s;

limit_req_zone $server_name zone=host_rate:10m rate=50r/s;

3、保存文件后,在宝塔面板【软件商店】中找到Nginx,点击【重载配置】按钮使变更生效。

二、在全局include文件中统一启用limit_req策略

宝塔将各站点配置拆分为独立文件并统一include进主配置,可在全局include处注入限速指令,避免重复写入每个site配置。此方式保持配置集中可控,且不受站点增删影响。

1、进入目录/www/server/nginx/conf/,新建文件limit_global.conf

2、在该文件中写入以下内容:

limit_req zone=global_rate burst=20 nodelay;

limit_req zone=host_rate burst=100 nodelay;

3、打开/www/server/nginx/conf/nginx.conf,找到包含include other.conf;或类似include语句的行,在其下方新增一行:include limit_global.conf;

4、保存并执行Nginx重载配置操作。

三、通过宝塔防火墙插件启用速率限制模块

宝塔官方防火墙插件(需付费版)内置了基于Nginx的请求频率控制功能,无需手动编辑配置文件,适合不熟悉Nginx语法的用户。该方式依赖插件运行时注入规则,实际仍作用于Nginx http上下文。

1、登录宝塔面板,进入【安全】→【宝塔防火墙】,确认已安装并启用插件。

2、点击【高级防护】选项卡,勾选【开启请求频率限制】。

3、在【全局频率限制】设置中,将【每秒请求数】设为10,【突发请求数】设为30

4、点击【保存设置】,插件会自动重写Nginx配置并重载服务。

四、验证限速是否生效

配置完成后,需通过外部工具模拟高频请求,观察响应头与状态码变化,确认限速策略已正确加载并触发。此步骤不依赖面板界面,直接验证底层Nginx行为。

1、在终端执行以下curl命令连续请求任意站点首页:

for i in {1..20}; do curl -I http://your-domain.com | head -n 1; sleep 0.1; done

2、观察返回结果中是否出现HTTP/1.1 503 Service Temporarily UnavailableHTTP/1.1 429 Too Many Requests状态码。

3、检查响应头中是否存在X-RateLimit-LimitX-RateLimit-Remaining等字段(需在配置中额外添加add_header指令才可见)。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>