全局配置项解析

以下提供一个示范性的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_processesworker_connections的乘积,即

$$max\_clients=worker\_processes \times worker\_connections$$

但是在设置了反向代理的情况下,并发总数为

$$max\_clients=\frac{worker\_process \times worker\_connections}{4}$$

worker_connenction的设置跟服务器的物理内存有关,因为并发受IO约束,max_clients的值必须小于系统可以打开的最大文数。系统可以打开的最大文件数与内存成正比,一般1GB内存的机器上可以打开的文件数约为10万,但需要注意的是,系统不会将所有内存都提供出来用于打开文件,系统的其他工作进程也需要消耗资源。