在高并发场景下,nginx 的轮询机制优化核心在于减少上下文切换开销并提升缓存命中率。具体做法是启用 keepalive 连接复用、调整 worker_processes 与 cpu 核心数匹配,以及合理设置 proxy_cache 避免重复后端请求。这些配置能显著降低系统负载,提升吞吐量。

keepalive 连接复用如何减少 TCP 握手开销
启用 keepalive 后,Nginx 与后端服务器保持长连接,避免每次请求都进行三次握手。这在高并发下能大幅降低延迟和 CPU 消耗。

upstream backend {
server 192.168.1.10:8080;
keepalive 32;
}
server {
location /api {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
预期结果:当并发请求增加时,后端服务器的新连接建立次数显著减少,响应时间趋于稳定。
worker_processes 设置对 CPU 亲和性的影响
将 worker_processes 设置为 auto 或等于 CPU 核心数,可确保每个工作进程绑定到特定 CPU 核,减少缓存失效和上下文切换。

worker_processes auto;
worker_cpu_affinity 0001 0010 0100 1000; # 假设4核CPU
events {
worker_connections 1024;
}
预期结果:在多核服务器上,CPU 使用率分布更均匀,单核过载现象减少,整体处理能力提升。
高并发下 proxy_cache 命中率对性能的影响
启用 proxy_cache 并设置合理的过期时间,可使静态或半静态内容直接从内存返回,避免回源请求。在高并发下,高缓存命中率能极大减轻后端压力。











