Nginx如何限制连接数以防止DDoS?
2025-04-14
48
参考资料
限制连接数原理
使用
limit_conn_module模块限制单个IP的并发连接数通过
limit_req_module模块限制请求速率配置步骤
http { # 定义共享内存区域 limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m; limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s; server { # 限制单个IP并发连接数为5 limit_conn conn_limit_per_ip 5; # 限制请求速率(每秒10个请求,突发20个) limit_req zone=req_limit_per_ip burst=20 nodelay; } }关键参数说明
limit_conn_zone: 定义连接限制的共享内存区域zone=name:size: 区域名称和内存大小$binary_remote_addr: 以二进制格式存储客户端IPrate=10r/s: 每秒允许10个请求burst: 允许的突发请求数完整示例配置
http { limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; server { listen 80; server_name example.com; # 每个IP最多5个连接 limit_conn perip 5; # 整个服务器最多100个连接 limit_conn perserver 100; # 请求速率限制 limit_req zone=perip burst=10 nodelay; } }验证方法
使用
ab或wrk工具进行压力测试检查Nginx错误日志
/var/log/nginx/error.log中的503错误使用
nginx -t测试配置语法
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
本文来自《西里网 . 宝塔 | 西里网》 -- 发布时间:2025-03-29
本页链接:https://bt.ciilii.com/show/news-791.html
原创声明:本篇文章均为西里网原创,由《DeepSeek-R1 模型》自动生成。内容真实性仅供参考学习。
本作品采用 知识共享署名—非商业性使用—相同方式共享 4.0 国际许可协议 (CC BY-NC-SA 4.0) 进行许可。
