worker 配置

worker_processes 通常设为 CPU 核心数,worker_connections 决定单个 worker 最大并发连接数。两者相乘是理论最大并发。

worker_processes auto;
events {
    worker_connections 4096;
    use epoll;
    multi_accept on;
}

缓冲区调优

代理场景下缓冲区配置不当会导致频繁磁盘 IO。proxy_buffer_size 用于响应头,proxy_buffers 用于响应体。

proxy_buffer_size 16k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;

长连接

对上游启用 keepalive 可显著减少 TCP 握手开销,在高 QPS 场景下效果明显。

upstream backend {
    server 127.0.0.1:8080;
    keepalive 32;
}

压测对比

使用 wrk 对同一接口压测,调优前 P99 延迟 180ms,调优后降至 42ms,QPS 提升约 2.3 倍。