想让 Nginx 跑得更快?先搞懂该配什么服务器
Nginx 性能优化的话题大多停留在参数层面,但真正决定上限的是服务器硬件与网络。本文从并发模型出发,讲清楚选服务器时该盯哪几个指标,以及不同业务场景该怎么配。
Nginx 快不快,一半看机器
经常有人问:Nginx 怎么优化才能扛住上万并发?这个问题其实分两半,一半是软件调优,一半是硬件选型。很多人只盯着前一半。
Nginx 的架构决定了它非常依赖单核性能和内存带宽。一个 worker 进程绑定一个 CPU 核心,处理连接、解析请求、读写数据全在这一个核上跑。核心主频低,单个请求的处理时间就长,并发能力自然上不去。
换句话说,配置调得再漂亮,机器底子不行,上限就摆在那。
选服务器要盯的四个指标
- CPU 主频优先于核心数:Nginx 不是计算密集型,高主频比堆核心更有效。双路中高频 CPU 通常比单路多核更适合。
- 内存容量与频率:连接数上万时,内存占用会明显上升,32G 起步比较稳妥。
- 独享带宽:出口带宽是硬约束,共享带宽高峰期不可控。
- 线路与延迟:面向国内用户的业务,回程线路直接决定体验。
不同场景怎么配
静态资源站和 CDN 回源节点,重点在带宽和磁盘 IO。大文件分发场景下,出口带宽比 CPU 重要得多,30M 独享起步,图片视频站甚至要上 G 口。
反向代理和 API 网关场景,重点在 CPU 主频和内存,因为要处理大量连接和 SSL 握手。这类业务推荐选内存大一些、主频高的独立服务器,比如 香港大带宽服务器 II,双路 E5-2683v4 配 64G 内存和 30M 独享出口,做代理层比较从容。
如果业务本身容易招攻击,那选型时要把防护能力一起考虑。被 DDoS 打挂的服务器,性能再强也没意义。带防护的独立服务器能省掉不少事后救火的时间,像 香港高防独立服务器 这类方案就适合放在前面挡流量。
压测才是唯一的裁判
选完机器别急着上线,先用 wrk 或 ab 做一轮基准测试。从 100 并发逐步加到 5000,记录响应时间和错误率。你会发现瓶颈往往出现在意想不到的地方,可能是磁盘,可能是带宽,也可能只是 ulimit 没调。
压测数据比任何选型经验都可靠。同一份配置在不同机器上跑出来的曲线,能直接告诉你钱花得值不值。
最后提醒一句,Nginx 调优是个系统工程。参数、内核、硬件、网络,缺一环都不行。选服务器时把上面几个指标对齐业务场景,剩下的交给压测去验证就好。