nginx events配置段
events 配置段控制 Nginx 如何处理网络连接,直接影响并发性能。
基础配置
nginx
events {
worker_connections 1024;
multi_accept on;
use epoll;
}
核心指令
worker_connections
nginx
events {
worker_connections 1024;
}
设置单个工作进程可同时打开的最大连接数。
| 值 | 说明 |
|---|---|
1024 | 默认值,适合一般场景 |
4096 | 高并发场景 |
65535 | 极高并发场景 |
计算公式
最大并发数 = worker_processes × worker_connections
反向代理场景需减半(前后端各占一个连接)
multi_accept
nginx
events {
multi_accept on;
}
| 值 | 说明 |
|---|---|
on | 工作进程一次性接受多个新连接 |
off | 每次只接受一个连接(默认) |
高并发场景建议开启。
use
nginx
events {
use epoll; # Linux
use kqueue; # FreeBSD/macOS
use select; # 通用(性能较差)
}
指定连接处理方法,推荐使用系统最优方法。
| 方法 | 适用平台 | 性能 |
|---|---|---|
epoll | Linux 2.6+ | 最优 |
kqueue | FreeBSD/macOS | 优 |
select | 通用 | 差 |
poll | 通用 | 差 |
Nginx 默认自动选择最优方法,无需手动指定。
accept_mutex
nginx
events {
accept_mutex on;
}
| 值 | 说明 |
|---|---|
on | 串行接受连接,避免惊群效应(Nginx 1.11.3 前默认 on) |
off | 并行接受连接(1.11.3 后默认 off) |
accept_mutex_delay
nginx
events {
accept_mutex on;
accept_mutex_delay 500ms;
}
未获取 accept_mutex 的工作进程等待时间。
完整示例
nginx
events {
worker_connections 4096;
multi_accept on;
# use 指令通常无需设置,Nginx 自动选择最优方法
}
性能调优建议
nginx
# 根据 CPU 核心数调整
worker_processes auto;
events {
worker_connections 4096;
multi_accept on;
}
配合系统限制调整:
Bash
# 查看文件描述符限制
ulimit -n
# 临时调整
ulimit -n 65535
注意事项
- worker_connections 不超过系统 ulimit 值
- 反向代理场景实际可用连接数减半
- Nginx 1.11.3 后 accept_mutex 默认 off,无需手动调整
要点总结
- events 配置段定义连接处理方式,影响并发性能
- worker_connections 设置单进程最大连接数,总并发 = 进程数 × 连接数
- multi_accept on 提升高并发场景连接接受效率
- use 指令指定连接处理方法,Nginx 自动选择最优
- worker_connections 值不能超过系统 ulimit 限制
📝 发现内容有误?点击此处直接编辑