当前位置:首页 > 文章列表 > 文章 > php教程 > 宝塔面板限流设置教程:Nginx并发控制防资源耗尽

宝塔面板限流设置教程:Nginx并发控制防资源耗尽

2026-03-27 16:06:36 0浏览 收藏
本文深入解析了宝塔面板下网站并发限流的完整技术链条,强调Nginx连接数(worker_connections)、PHP-FPM进程数(pm.max_children)与系统文件描述符限制(ulimit -n)三者必须协同配置,缺一不可——否则限流形同虚设;同时厘清了“网站级并发限制”(基于limit_conn/limit_req,控制活跃TCP连接数)与“单IP请求速率限制”(基于limit_req_zone,防CC攻击)的本质区别,并给出静态站、WordPress等场景的实操建议值、内存导向的max_children计算方法、worker_connections调优要点及ulimit生效步骤,还揭示了常见误区(如混淆并发数与QPS、忽视WAF联动防CC),并提供ab压测验证方式,助你真正筑牢高并发下的服务稳定性防线。

宝塔面板如何限制并发数_配置Nginx限流防止资源耗尽

网站级并发限制:在宝塔界面直接设单站最大连接数

宝塔对单个网站的并发控制,本质是 Nginx 的 limit_conn + limit_req 组合封装,它不改全局配置,适合临时压测或突发流量隔离。

  • 路径:【网站】→ 找到站点 → 【设置】→ 【流量限制】→ 勾选【开启流量限制】→ 填写【并发限制】数值
  • 这个值代表“同一时刻允许多少个 TCP 连接处于 active 状态”,不是每秒请求数(QPS),也不是 IP 数量;设为 50 并不意味每秒只能处理 50 次请求,而是最多 50 个连接同时挂着(比如长轮询、慢接口、上传中)
  • 容易踩的坑:并发限制 和 单IP限制 是两个独立开关,别误以为开了前者就自动限 IP;若没开 单IP限制,恶意脚本仍可用 100 个不同 IP 打满你设的 50 并发
  • 建议值参考:静态站可设 80–120,WordPress 类动态站建议 40–80,低于 30 可能导致正常用户刷新失败(尤其启用 WP Rocket 或缓存插件后首屏加载变慢)

PHP 层并发上限:调 max_children 防 FPM 进程打满

网站并发数再高,最终要落到 PHP-FPM 能 fork 出多少子进程来执行脚本。这个值设低了,请求会排队进 pm.status_path 队列,出现 504 Gateway Timeout;设高了又可能吃光内存,触发 OOM killer 杀进程。

  • 路径:【软件管理】→ 找到 PHP 版本 → 【设置】→ 【性能调整】→ 修改【最大并发数】(即 pm.max_children)
  • 计算依据不是 CPU 核心数,而是内存:每个 PHP 进程平均占 20–40MB(取决于扩展和程序),8GB 内存服务器保守建议 ≤ 120,16GB 可设到 200–250
  • 注意:该值必须 ≤ pm.start_servers × 2,否则启动时会报 WARNING: pm.start_servers is not set 类警告;宝塔默认 start_servers 是 5,所以别一上来就把 max_children 设成 300
  • 改完务必点【提交】,宝塔会自动 reload php-fpm,但不会重启 MySQL 或 Nginx —— 若你同时调了数据库连接池,得手动检查是否匹配

Nginx worker 级连接总容量:改 worker_connections 才算真正扩容

前面两步都是“应用层限流”,而 worker_connections 是 Nginx 自身能维持的最大并发连接总数,是整个服务的天花板。不调它,就算网站和 PHP 都放开,Nginx 也会在 accept() failed (24: Too many open files) 报错后拒绝新连接。

  • 路径:【软件管理】→ Nginx → 【设置】→ 【配置修改】→ 在 events { ... } 区块内添加或修改:worker_connections 4096; 和 use epoll;
  • 总连接上限 = worker_processes × worker_connections;宝塔默认 worker_processes auto;(通常等于 CPU 核心数),所以 4 核机器配 4096 就是约 1.6 万连接
  • 别盲目拉高 worker_connections:超过 8192 后需同步调大系统 fs.file-max 和用户级 ulimit -n,否则 Nginx 启动时会静默降级回默认值(如 1024),且无任何提示
  • Linux 默认 ulimit -n 是 1024,宝塔【安全】→【防火墙】→【高级设置】→【系统命令】里执行:echo "* soft nofile 65535" >> /etc/security/limits.conf && echo "* hard nofile 65535" >> /etc/security/limits.conf,然后重连 SSH 生效

防 CC 攻击的并发联动:单 IP 限流不能只靠面板默认值

宝塔的【单IP限制】看着简单,但它背后是 Nginx 的 limit_req_zone,单位是“请求速率”(r/s),不是并发数。很多人填了 10,结果发现攻击者用 10 个线程每秒刷 10 次,照样打满你后端。

  • 【单IP限制】填的数字,是“每秒最多允许多少个请求通过”,不是“总共最多 10 个连接”。若填 5,攻击者用 curl -s -o /dev/null -w "%{http_code}\n" -H "User-Agent: test" http://yoursite.com & 重复 20 次,照样能压出 20 QPS
  • 真正防 CC 要配合 WAF:宝塔专业版的【网站防火墙】→【防 CC 攻击】里勾选后,它会在 Nginx 配置里插入 limit_req zone=ccburst burst=20 nodelay; 这类规则,比纯面板设置更可控
  • 别信“并发 300 很高”的说法:真实业务中,一个含 3 张图 + 1 个 JS + 1 个 CSS 的首页,用户打开就产生 6–8 个并发请求;300 并发 ≈ 同时在线 40–50 人,小电商或企业站真可能达到
  • 验证是否生效:用 ab -n 1000 -c 200 http://yoursite.com/ 测试,再看 Nginx 错误日志里有没有大量 limiting requests, excess: X.XX 记录

宝塔把很多底层参数做了图形化封装,但并发这事,worker_connections、pm.max_children、ulimit -n 这三个值必须协同调整,漏掉任何一个,都可能让前面所有设置变成无效装饰。

以上就是《宝塔面板限流设置教程:Nginx并发控制防资源耗尽》的详细内容,更多关于的资料请关注golang学习网公众号!

豆包AI注册教程及账号指南豆包AI注册教程及账号指南
上一篇
豆包AI注册教程及账号指南
Java配置RocketMQ事务消息教程
下一篇
Java配置RocketMQ事务消息教程
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • PubMedQA数据集详解:生物医学问答基准、功能与应用指南
    PubMedQA
    深入了解PubMedQA生物医学问答数据集,涵盖其核心功能、使用方法及在临床决策、药物研发等场景的应用,助力提升NLP模型性能。
    363次使用
  • H2O EvalGPT:开源LLM大模型评估与排行榜工具
    H2O EvalGPT
    H2O EvalGPT是H2O.ai推出的开源LLM评估平台,提供详细的大模型性能排行榜、行业特定基准测试及A/B测试功能,助您快速选择最适合项目的高性能大语言模型。
    419次使用
  • LMArena是什么?伯克利AI模型评估平台使用指南与功能解析
    LMArena
    LMArena是加州大学伯克利分校推出的AI模型匿名评测平台。通过盲测投票机制,用户可对比不同大模型回答并生成实时排行榜,助力开发者优化模型及用户选择最佳AI工具。
    433次使用
  • 斯坦福HELM:大语言模型Holistic Evaluation整体评估框架详解
    HELM
    深入了解斯坦福推出的HELM(Holistic Evaluation of Language Models)大模型评测体系。本文解析其核心功能、安装配置步骤及应用场景,涵盖准确性、公平性、鲁棒性等多维度指标,助力开发者全面优化语言模型性能。
    386次使用
  • MMBench详解:多模态大模型基准测试、功能特点与使用指南
    MMBench
    MMBench是由上海人工智能实验室等机构联合推出的多模态基准测试平台,提供细粒度能力评估、大规模数据集及VLMEvalKit工具。本文详细介绍其核心功能、安装使用方法及应用场景,助力开发者全面评估多模态模型性能。
    213次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议 和 隐私政策
返回登录
  • 重置密码