连接数上不去,调整 worker_processes 和 worker_connections 就够了吗?
首先要看进程是否真的需要更多连接。通常把 worker_processes 设为 auto,再把 worker_rlimit_nofile 打开,并通过连接状态确认 TIME_WAIT 与 ESTABLISHED 的比例。若只是等待中的请求很多,需要看 upstream 处理速度与后端应用线程,不能只依赖前端排队。
worker_processes auto;
worker_rlimit_nofile 65535;
events {
worker_connections 4096;
multi_accept on;
use epoll;
}
修改后用 nginx -s reload 加载,并检查错误日志是否仍出现 worker_connections are not enough。若仍然出现,再考虑 worker_connections 与单连接内存占用之间的平衡。