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 压测建立基线,避免盲调。