Nginx性能优化:掌握这5个参数,性能提升300%!

Nginx是大型架构的核心,下面我重点详解Nginx性能优化@mikechen

一、worker_processes —— 决定并发能力的核心参数

每个worker进程是单线程异步事件驱动模型,能充分利用CPU核心。

因此建议设置为:

worker_processes auto;

实战建议:

在多核服务器(如8核)上使用auto,让Nginx自动识别核心数;

若为容器环境,需限制CPU核心并手动配置。

 

二、worker_connections —— 决定单进程可承载连接数

每个worker进程可同时处理的最大连接数,默认值:1024

优化示例:

events {
worker_connections 65535;
}

原理说明:

总并发连接数 = worker_processes × worker_connections

例如:

8个进程 × 65535 ≈ 50万连接(理论上限)

实战优化:

根据系统ulimit -n最大文件描述符进行调整;

注意与epoll事件驱动结合使用;

若配合keep-alive连接,应留足余量。

 

三、keepalive_timeout —— 平衡连接复用与资源占用

长连接的保持时间,默认值:75s

优化建议:

keepalive_timeout 15s;

💡 优化思路:

连接保持太久 → 占用资源;

太短 → 增加TCP三次握手次数;

需根据业务类型权衡。

🚀 实战经验:

静态资源服务可适当缩短;

动态接口或API请求可维持15–30s;

若有反向代理层,需保持一致。

 

四、client_max_body_size —— 控制单次请求体积

限制客户端请求体大小,默认值:1M

优化示例:

client_max_body_size 20M;

优化场景:

上传文件(图片、视频);

POST请求体较大。

实战建议:

过小会导致413 Request Entity Too Large

可按接口特性在location级别单独配置;

上传流式数据可搭配proxy_request_buffering off;使用。

 

五、组合优化磁盘IO与网络性能

这三个参数常被忽略,但却是性能提升的关键细节。

推荐配置:

sendfile on;
tcp_nopush on;
tcp_nodelay on;

参数说明:

sendfile:启用零拷贝机制,减少内核与用户空间的数据拷贝;

tcp_nopush:将响应头和数据包合并后一次性发送;

tcp_nodelay:禁用Nagle算法,减少小包延迟(主要对动态接口有效)。

实战组合:

静态资源服务器:sendfile on; tcp_nopush on;

动态接口服务:tcp_nodelay on;

评论交流
    说说你的看法