nginx.conf需精调关键项:worker_processes auto并绑定cpu;启用keepalive_timeout、keepalive_requests及超时控制;配置client_max_body_size等安全防护;优化日志格式与缓冲写入。

nginx.conf 的全局配置直接影响服务稳定性、性能和安全性,不是堆参数越多越好,而是要按实际场景精调关键项。
worker 进程与 CPU 绑定
Nginx 启动后默认只用一个 worker 进程,多核 CPU 下必须显式配置才能压满资源。建议设为 auto(自动匹配 CPU 核心数),并开启 worker_cpu_affinity 绑定,避免进程跨核调度开销:
- worker_processes auto;
- worker_cpu_affinity auto;
- 若需手动指定(如 4 核机器),可写成 worker_cpu_affinity 0001 0010 0100 1000;
连接管理:keepalive 与超时控制
高并发下连接复用比频繁建连更省资源。全局应启用长连接,并合理限制生命周期:
- keepalive_timeout 65 60;(第一个值是客户端保持连接时间,第二个是发送响应后的等待时间)
- keepalive_requests 1000;(单个连接最多处理请求数,防内存泄漏)
- 搭配 client_header_timeout 和 client_body_timeout 控制请求头/体读取超时(建议 12–30s)
安全与资源防护底线设置
不设限的请求可能引发 DoS 或内存耗尽。以下几项属于“必配”防护项:
- client_max_body_size 10M;(防止大文件上传拖垮内存)
- client_header_buffer_size 2k;(小缓冲区防畸形 Header)
- large_client_header_buffers 4 8k;(应对含大量 Cookie 或长 URL 的请求)
- server_tokens off;(隐藏 Nginx 版本号,降低信息泄露风险)
日志与性能可观测性
生产环境不建议关闭访问日志,但可优化格式与写入方式提升吞吐:
- 使用 log_format 定义精简字段(如 $remote_addr $time_local $status $request_length $bytes_sent)
- 启用 access_log /var/log/nginx/access.log main buffer=16k flush=1s;(缓冲写入 + 秒级刷盘)
- error_log /var/log/nginx/error.log warn;(错误日志级别设为 warn 或 error,避免 debug 级别淹没磁盘)











