以下内容是对nginx的全局属性配置
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
#worker_rlimit_nofile 65535;
events {
# use epoll;
worker_connections 65535;
}
user是个主模块指令,指定nginx woker进程运行用户以及用户组,默认由nobody账号运行
worker_processes 是个主模块指令,指定了nginx要开启的进程数,每个nginx进程平均耗费10~12MB内存,根据经验,一般指定一个进程就足够了,如果是多核CPU,建议指定和CPU数量一致的进程数即可
error_log 是个主模块指令,用来定义全局错误日志文件,日志输出级别有debug,info,notice,warn,error,crit可供选择,其中debug输出的日志最为详细,而crit输出的日志最少
pid是主模块指令,用来指定进程id的存储文件位置
worker_rlimit_nofile 用于绑定worker进程和CPU,linux2.4以上可用
events指令用来指定nginx的工作模式及连接的上限
use是个事件模块指令,用来指定nginx的工作模式,nginx支持的工作模式有select,poll,kqueue,epoll,rtsig和/dev/poll,其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在linux平台,而kqueue用在bsd系统中,对于linux系统,epoll工作模式是首选
worker_connection也是个事件模块指令,用于定义nginx每个进程的最大连接数,max_client=worker_processes*worker_connection,在做为反向代理时变为max_clients=worker_processes*worker_connection/4
进程的最大连接数受linux系统进程最大打开文件数限制,在执行操作系统命令”ulimit -n 65536″后,worker_connection的设置才能生效