Nginx的最大连接数配置涉及多个参数,需要根据服务器资源和业务需求进行合理设置。以下是详细的配置方法和优化建议:
worker_processes auto; # 通常设置为CPU核心数或auto自动检测
events {
worker_connections 1024; # 每个worker进程的最大连接数
}
在Linux系统中,还需要检查并可能调整以下系统参数:
# 查看当前限制
ulimit -n
# 临时增加限制
ulimit -n 65535
# 永久修改(在/etc/security/limits.conf中添加)
* soft nofile 65535
* hard nofile 65535
最大并发连接数 = worker_processes × worker_connections
例如: - 4核CPU - worker_connections设置为10240
则最大理论连接数 = 4 × 10240 = 40960
worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;
events {
use epoll; # Linux系统推荐使用epoll
multi_accept on; # 一次接受多个新连接
}
http {
keepalive_timeout 65;
keepalive_requests 100;
}
监控连接数:
netstat -anp | grep nginx | wc -l
或
ss -s
压力测试: 使用工具如ab、wrk或jmeter进行压力测试:
ab -n 100000 -c 1000 http://yourserver/
调整建议:
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 20480;
multi_accept on;
use epoll;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 30;
keepalive_requests 100;
types_hash_max_size 2048;
server_tokens off;
# 其他HTTP配置...
}
记住,最佳配置取决于您的具体硬件、流量模式和业务需求,建议通过测试确定最适合您环境的参数。