全局配置项解析
以下提供一个示范性的Nginx配置文件来配合说明。
# 指定运行用户,Windows下不需要此项设置
user nobody;
# 启动进程,通常设置成和CPU的数量相等
worker_processes 1;
# 全局错误日志及PID文件
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
# 工作模式及连接数上限
events {
# epoll是多路复用IO的一种方式,用于Linux系统,Windows系统不做配置
use epoll;
# 单个后台worker进程的最大并发连接数
worker_connections 1024;
}
# 定义功能一致的服务器群,用于反向代理设置和负载均衡设置,server_id用于为服务器群命名
upstream server_id {
# 使用server来定义服务所在位置
server 127.0.0.1:8080;
}
http {
...
}
Nginx的并发总数是worker_processes
和worker_connections
的乘积,即
$$max\_clients=worker\_processes \times worker\_connections$$
但是在设置了反向代理的情况下,并发总数为
$$max\_clients=\frac{worker\_process \times worker\_connections}{4}$$
worker_connenction
的设置跟服务器的物理内存有关,因为并发受IO约束,max_clients
的值必须小于系统可以打开的最大文数。系统可以打开的最大文件数与内存成正比,一般1GB内存的机器上可以打开的文件数约为10万,但需要注意的是,系统不会将所有内存都提供出来用于打开文件,系统的其他工作进程也需要消耗资源。