Nginx 默认配置偏保守,应对中低流量没问题,但高并发场景需要针对性调优。这篇笔记记录几个关键参数。

一、worker 进程数

# /etc/nginx/nginx.conf
worker_processes auto;     # 自动等于 CPU 核数

二、最大连接数

events {
    worker_connections 10240;   # 每个 worker 最大连接数
}

总并发能力 = worker_processes × worker_connections。一台 4 核服务器理论可支撑 4 万并发连接。

三、开启 keepalive

HTTP/1.1 默认 keepalive,复用 TCP 连接,减少握手开销。浏览器一般会复用连接发起多个请求。

keepalive_timeout  65;     # 保持连接 65 秒
keepalive_requests 1000;    # 单连接最多 1000 个请求

四、gzip 压缩

gzip on;
gzip_min_length 1k;
gzip_types text/plain text/css application/javascript application/json;
gzip 能把文本类资源压缩到原来的 30%,大幅减少带宽和加载时间。但注意不要压缩已压缩的图片/视频(无效且耗 CPU)。

五、静态资源缓存

location ~* \.(css|js|png|jpg)$ {
    expires 7d;
    add_header Cache-Control "public";
}

六、系统层面

别忘了系统内核参数,高并发下要调高文件描述符限制:

# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

七、小结

性能调优是个系统工程:应用层(Nginx 配置)+ 系统层(内核参数)+ 架构层(CDN/缓存)要配合。调优前先用 ab/wrk 压测建立基线,避免盲调。