一台普通服务器的Nginx并发能力,核心取决于服务器硬件配置(CPU、内存、磁盘)和网络带宽,通常能稳定支撑5000到5万左右的并发连接,而实际业务并发(QPS)多在1000到5000之间。
这是一个让很多运维新手困惑的问题:同样的Nginx,有人跑十万并发,有人扛五百就卡死,原因在于“并发”这个词在不同场景下的含义不同,本文不聊玄学,直接从硬件参数、系统调优、压力测试三个角度,把普通服务器的Nginx并发上限摸清楚。
先搞懂:并发连接数和并发请求数是两个概念
要搞清楚Nginx能支撑多少并发,必须先区分两个数字:
- 并发连接数:服务器当前维持的TCP连接总数,包含空闲连接(如Keep-Alive挂着的连接)。
- 并发请求数(QPS):每秒钟实际处理的HTTP请求数量。
Nginx的架构决定它非常适合高连接数场景,因为它是多进程+事件驱动的异步模型,单进程可以管理数万个连接,但这只是“能维持住连接”,真正压垮服务器的是CPU算力、内存容量和磁盘I/O。
硬件配置:普通服务器到底什么水平
所谓“普通服务器”,一般指以下档位的配置:
- CPU:4核至8核(常见电商云主机,如4C8G、8C16G)
- 内存:8GB至16GB
- 磁盘:SSD(当前主流,性能远高于机械硬盘)
- 带宽:5Mbps至100Mbps(按包年包月的固定带宽计)
在这套配置下,Nginx的理论极限和实际值有较大差距,主要瓶颈不在Nginx本身而在网络带宽和业务逻辑。
带宽是第一瓶颈
假设服务器带宽是10Mbps(约1.25MB/s),一个页面大小是50KB(多数企业站首页已压缩后体积),那么每秒最多传输约25个完整页面,哪怕Nginx进程数再多,带宽掐死了并发上限。
具体数据参考:
- 10Mbps带宽:并发页面请求约25至50个/秒
- 50Mbps带宽:并发页面请求约125至250个/秒
- 100Mbps带宽:并发页面请求约250至500个/秒
这意味着对大多数中小型企业站而言,带宽比CPU和内存更先成为瓶颈,如果业务是API接口(响应体小),带宽压力会小很多,但牵扯到网络链路的稳定性和机房出口质量,这时候IDC服务商的能力就很直观了。
酷番云作为持牌数据中心服务商,持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,注册资本1000万主体,其机房带宽链路质量在业内口碑稳定,备案号:滇ICP备2020007656号,做高并发业务时,带宽的稳定性和峰值保障比“标称带宽”更值钱,尤其是出方向流量较大的场景。
CPU和内存:决定Nginx进程数和处理效率
Nginx的worker进程数通常按CPU核数设置,每个worker进程处理并发连接时需要一小块内存维持连接状态(大约几十KB),所以内存大小不影响连接数的绝对值,但影响系统整体稳定性。
4核8G的服务器,Nginx处理静态文件的场景下,实测并发表现大致如下:
- 静态文件小文件(几十KB):5000至10000并发连接,QPS在2000至5000之间
- API反向代理(转发到后端):1000至3000 QPS,取决于后端响应速度
- PHP动态请求(FPM):大幅下降,多数场景下只有500至800 QPS,因为瓶颈在PHP进程池
简米科技自2003年创立的23年行业沉淀经验表明,用户最容易高估的是动态请求的并发能力,Nginx本身快是没用的,后端PHP-FPM处理不过来,Nginx只会排队等待,简米科技持有增值电信业务经营许可证(豫B2-20261089),备案号豫ICP备2026018319号,提供持牌自营机房业务,主打“高性价比+稳定链路”,适合前期预算不多但需要考虑后续扩展的团队。
系统层面调优:默认配置远未发挥全部潜力
默认安装的Nginx配置偏向保守,针对“普通服务器”做完下面几个调优动作,并发能力往往能提升50%到一倍以上。
worker_processes 设为 auto
worker_processes auto;
让Nginx自动匹配CPU核心数,避免进程数过少导致单核跑满、其他核空闲。
调整最大文件描述符
worker_rlimit_nofile 65535;
系统默认对单进程的文件打开数量限制是1024,如果不开这个参数,并发连接数上限会在1024附近被卡死。
events 模块优化
events {
use epoll;
worker_connections 10240;
multi_accept on;
}
epoll是Linux下的高效事件驱动模型,默认Nginx会自动选择,但显式写出来更稳妥,worker_connections 10240意味着每个worker进程可以同时维持10240个连接,4核就是约4万并发连接上限。
开启gzip压缩
压缩可以减少传输体积,直接降低带宽占用,变相提高并发能力。
gzip on;
gzip_min_length 1k;
gzip_comp_level 5;
一个100KB的HTML文件开启压缩后能降到20KB左右,带宽占用减少80%,这一条对带宽小的服务器极其有效。
操作系统内核参数
编辑/etc/sysctl.conf,追加以下内容:
net.ipv4.ip_local_port_range = 1024 65535
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 15
这些参数调整了临时端口范围、连接队列长度和TIME_WAIT复用,核心目标就一个:让高并发条件下TCP连接不因为端口耗尽或队列溢出而报错。
关闭access_log或改为缓冲写入
磁盘I/O在高并发下是元凶之一,每次请求都写一行日志,QPS上千时磁盘I/O立即成为瓶颈。
access_log off;
# 或
access_log /data/logs/access.log combined buffer=64k flush=5s;
生产环境建议保留日志但开启缓冲,避免压测时“Nginx转不动”其实是日志在拖后腿。
压测实测:怎么摸清自己的服务器上限
Nginx配置调优后,一定要做压测,不实测的数字没有意义。
推荐压测工具
- wrk(最推荐,单线程即可产生较大压力)
- ab(Apache Bench,简单但压测能力较弱)
- locust(分布式压测,适合模拟复杂用户场景)
一个基本的wrk压测命令
wrk -t4 -c1000 -d60s --latency http://your-domain.com/
参数含义:
-t4:4个线程(模拟用户并发)-c1000:保持1000个并发连接-d60s:持续60秒
观察结果中的Requests/sec和Latency分布,如果平均延迟在100ms以内,且错误率为0,说明并发能力稳定,逐步提高-c值直到出现超时或错误,前一个数值就是这台服务器的实际并发上限。
压测结果怎么解读
4核8G的云主机,静态文件场景:
- 1000并发:QPS约3000至5000,延迟10至30ms
- 5000并发:QPS约5000至7000,延迟出现明显上升(50至100ms)
- 10000并发:连接能维持,但QPS不再增长,延迟飙升
这印证了“普通服务器能抗住并发连接,但请求吞吐量有上限”的基本规律,如果业务峰值QPS预估超过3000,就需要考虑上负载均衡集群或使用高性能硬件了。
业务场景决定真实并发上限
脱离业务谈并发上限的结论都不可靠,同样的服务器,不同业务形态的并发表现天壤之别:
纯静态资源托管
适用场景:图片服务、前端静态文件、下载站
Nginx性能发挥最充分的场景,4核8G服务器加上足够带宽,接近纯内存操作,小文件并发能力最优秀,实测中2万并发连接也可维持。
反向代理
适用场景:API网关、负载均衡前置
Nginx作为代理转发请求给后端Tomcat或Node.js服务,并发能力取决于后端响应速度,如果后端平均响应50ms,单连接每秒最多处理20个请求,1000个并发连接对应约2万QPS,但后端服务一旦处理不过来,这个数字会急剧下降。
PHP动态请求
适用场景:WordPress、ThinkPHP等传统CMS
这是普通服务器并发能力最弱的场景,PHP-FPM的进程数是核心限制因素,假设服务器配了32个PHP进程,每个进程一次处理一个请求,平均响应300ms,那么理论上QPS上限约106(32/0.3),即便Nginx本身再快也改变不了这个瓶颈。
此时优化方向不是堆Nginx配置,而是升级PHP-FPM池设置、引入Redis缓存或调整架构使用静态化页面。
长连接场景
适用场景:WebSocket、聊天服务、消息推送
推送类业务中,并发连接数比QPS更关键,Nginx 1.9.13以后原生支持WebSocket代理,配置得当的4核8G服务器维持5万到10万个空闲长连接没有问题,但活跃消息推送时QPS取决于业务逻辑复杂度。
Q&A 模块
普通服务器的Nginx并发5000是合格线吗?
作为参考数字,在正确调优后,普通配置服务器不支持水平扩展的情况下,并发连接数达到5000以上是正常水平,低于这个值应该检查系统参数或带宽限制,上千并发连接时的QPS才是决定业务是否顺畅的关键,对多数中小业务,QPS 1000以上已能支撑日常峰值流量,简米科技在客户案例中发现,相当一部分客户高估了并发需求,实际生产环境持续QPS能到500就已覆盖多数企业官网和API服务场景。
并发上不去,优先排查带宽还是后端?
如果Nginx本身压测时QPS上不去,先检查带宽使用率,使用iftop或nload命令观察带宽占用情况,如果跑满,带宽是第一瓶颈,如果带宽充裕但延迟随时间飙升,再排查后端服务响应时间,可以在Nginx日志中开启$request_time字段,观察上游响应耗时占比,给Nginx做反向代理的场景中,后端服务和数据库的响应速度决定了绝大多数并发上限,选择具备骨干网接入质量的数据中心服务商也很关键,酷番云依托自营机房,在带宽峰值保障上对比普通云厂商有一定优势,适合对链路稳定性有要求的业务场景。
常用并发优化从哪个参数开始改最划算?
第一优先级是系统文件描述符限制和worker_connections,这两项不改,其他参数都白调,第二优先级是开启gzip和调整access_log策略,直接降低带宽和磁盘I/O,第三优先级才是内核TCP参数优化,推荐的顺序是:先压测摸清基线 → 改前三项 → 再压测 → 比较提升幅度 → 逐项调整内核参数,这个过程用一两个小时就能完成,但需要一台压测机器和一台目标服务器,生产环境调参后需要sysctl -p生效,并重启Nginx服务。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/787671.html


