插件窝 干货文章 Nginx最大连接数如何配置

Nginx最大连接数如何配置

worker 连接 配置 connections 648    来源:    2025-04-21

Nginx最大连接数配置指南

Nginx的最大连接数配置涉及多个参数,需要根据服务器资源和业务需求进行合理设置。以下是详细的配置方法和优化建议:

核心配置参数

1. worker_processes

worker_processes auto;  # 通常设置为CPU核心数或auto自动检测

2. worker_connections

events {
    worker_connections 1024;  # 每个worker进程的最大连接数
}

3. 系统级限制

在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

高级优化配置

1. 多核CPU绑定

worker_processes 4;
worker_cpu_affinity 0001 0010 0100 1000;

2. 连接处理优化

events {
    use epoll;  # Linux系统推荐使用epoll
    multi_accept on;  # 一次接受多个新连接
}

3. 长连接配置

http {
    keepalive_timeout 65;
    keepalive_requests 100;
}

监控与调优建议

  1. 监控连接数

    netstat -anp | grep nginx | wc -l
    或
    ss -s
    
  2. 压力测试: 使用工具如ab、wrk或jmeter进行压力测试:

    ab -n 100000 -c 1000 http://yourserver/
    
  3. 调整建议

    • 根据实际测试结果逐步调整
    • 考虑内存限制(每个连接约消耗几KB内存)
    • 高并发场景考虑启用HTTP/2

典型生产环境配置示例

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配置...
}

记住,最佳配置取决于您的具体硬件、流量模式和业务需求,建议通过测试确定最适合您环境的参数。