worker_processes(工作进程数)
该参数决定了 Nginx 启动多少个工作进程来处理请求。Nginx 采用事件驱动模型,单个worker进程效率高。将进程数匹配核心数,可以避免进程间的CPU竞争和频繁的上下文切换。
worker_processes auto;
nginx会自动检测服务器的CPU核心数,并为每个核心启动一个工作进程。

worker_connections(单个进程最大连接数)
每个 worker 进程可以同时打开的最大连接数。
提高服务器的总并发能力。
建议设置为一个较大的值,例如 10240 或更高。
events {
worker_connections 10240;
}注意: 理论上的最大并发连接数是 worker_processes * worker_connections。
此外,此值不能超过操作系统对单个进程最大文件描述符的限制。如果需要更高的值,您可能需要先调整系统的 ulimit -n。
Keepalive 连接配置(长连接)
Keepalive(或长连接),允许客户端在一个 TCP 连接上发送多个 HTTP 请求。从而减少了大量的连接建立和关闭的开销,比如:TCP 三次握手、和四次挥手。
keepalive_timeout:设置一个合理的超时时间,如 15s – 30s;
keepalive_requests:在一个连接上允许处理的最大请求数。调高此值可以减少重新连接的频率,推荐 1000 或更高。
http {
keepalive_timeout 20s;
keepalive_requests 1000;
}Gzip压缩
启用 Gzip 压缩可以显著减小 HTML、CSS、JavaScript 等文本类文件的传输体积,从而加速页面加载时间并节省带宽。
gzip on 启用压缩。
gzip_comp_level:压缩级别(1-9)。推荐使用中间值 5 或 6,以在 CPU 消耗和压缩率之间取得平衡。
静态文件传输优化(sendfile 与 tcp_nopush)
这两个参数协同工作,可以优化 Nginx 从磁盘读取和传输静态文件的过程,有效减少 CPU 开销和网络延迟。
同时开启这两个指令:
sendfile on: 启用操作系统的 sendfile() 系统调用。
在内核态完成文件传输,实现零拷贝,这对传输大文件非常高效。
tcp_nopush on: 必须在 sendfile on 的情况下开启。
它会指示 Nginx 将响应头和文件数据合并成一个或多个满载的数据包后再发送,提高网络效率