nginx 高并发低延迟优化需匹配硬件、减少开销、缩短路径、避免重复计算:合理设 worker 进程与连接数、启用 epoll 与 sendfile、优化 keepalive、协同压缩缓存 ssl。

想让 Nginx 真正扛住高并发、跑出低延迟,光靠默认配置远远不够。核心在于:匹配硬件能力、减少系统开销、缩短请求路径、避免重复计算。下面这些关键动作,已在大量生产环境验证有效。
合理设置 worker 进程与连接数
Nginx 的并发能力起点就在这里。worker_processes 决定能并行处理请求的“人手”数量,worker_connections 则是每人能同时接待的“客户”上限。
- 用 worker_processes auto; 让 Nginx 自动识别 CPU 核心数,比硬写数字更稳妥
- 每个 worker_connections 建议设为 8192 或 10240,不是越大越好——要同步检查系统级限制:
ulimit -n至少需 ≥ worker_processes × worker_connections - 在多核服务器上,可加 worker_cpu_affinity 把每个 worker 绑定到独立 CPU 核心,减少缓存抖动和上下文切换损耗
启用高效事件模型与传输机制
Linux 下必须用 epoll,这是支撑万级并发的底层基础;而 sendfile、tcp_nopush 这类参数,则直接减少内核态与用户态之间的数据拷贝次数。
- events 块中明确写 use epoll;,避免依赖自动选择可能带来的不确定性
- http 块中开启 sendfile on; 和 tcp_nopush on;,静态文件(如 JS/CSS/图片)传输效率可提升 30% 以上
- 对延迟敏感的服务,加上 tcp_nodelay on;,防止小包被 Nagle 算法缓冲
优化连接复用与后端通信
频繁建连断连是性能杀手。Nginx 既要管好客户端连接,也要管好和后端服务的连接。
- 客户端侧:设 keepalive_timeout 75; 和 keepalive_requests 1000;,平衡资源占用与复用收益
- 后端侧:在 upstream 块中配 keepalive 32;,并确保后端服务也支持 HTTP keep-alive,否则 Nginx 的长连接形同虚设
- 反向代理时,建议显式关闭不必要的 header(如 proxy_set_header Connection '';),避免干扰连接复用逻辑
压缩、缓存与 SSL 协同提速
这三项不是孤立配置,而是层层递进的加速组合:压缩减体积、缓存减请求数、SSL 优化减握手耗时。
- Gzip 压缩只对文本类资源生效,gzip_types 中务必包含
application/json和text/xml,API 接口响应也能明显变轻 - 静态资源缓存用 expires 30d;,动态内容可结合 proxy_cache 模块做秒级或分钟级缓存,注意设置 Cache-Control 头与缓存键策略
- SSL 场景下,启用 TLSv1.3 + ssl_session_cache shared:SSL:10m;,会话复用率可超 90%,大幅降低 handshake 开销











