1 .worker_connections;#每个worker进程能处理的最大连接数。
# 估算每个连接的内存占用(约 256KB-1MB,取决于配置)
可用内存 ÷ 每个连接内存 ≈ 总连接容量
# 示例:8GB 内存服务器
总内存 = 8 × 1024 = 8192 MB
保留系统和其他服务 = 2048 MB
NGINX 可用内存 = 6144 MB
每个连接估算内存 = 0.5 MB (512KB)
worker_connections ≈ (6144 ÷ 0.5) ÷ worker_processes
≈ 12288 ÷ 4 (假设4个worker)
≈ 3072
2 .worker_processes auto; # 与CPU核心数一致,`auto`为自动检测。
3 .keepalive_timeout 65; # 客户端长连接保持时间。可适当降低(如30s)以释放连接。
4 .keepalive_requests 1000; # 单个长连接上可处理的请求数,避免频繁建连。
5. 针对参数 worker_rlimit_nofile:
# 根据服务器内存大小推荐配置
# 内存 ≤ 2GB: worker_rlimit_nofile 20000
# 内存 4GB: worker_rlimit_nofile 40000
# 内存 8GB+: worker_rlimit_nofile 65535 或更高
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 10240;
}
最终建议 :先设置为 65535(这是 Linux 下一个常见的较高值),然后通过监控实际使用情况,再决定是否需要进一步调整。大多数生产环境在 20000-50000 之间即可满足需求。