nginx配置文件主要分为六个区域:main section、events section、http section、sever section、
location section、upstream section。依据这个分类学习nginx的模块。
main module:主要控制子进程的所属用户/用户组、派生子进程数、错误日志位置/级别、pid位置、子进程优先级、进程对应cpu、进程能够打开的文件描述符数目等。
user kingnet kingnet;worker_processes 4;error_log logs/error.log notice;pid logs/nginx.pid;# worker_priority -5;# worker_cpu_affinity 0001 0010 0100 1000;worker_rlimit_nofile 1024;
注:worker_cpu_affinity:指定进程对应cpu,上面配置是第一个进程对应cpu0,第二个进程对应cpu1,第三个进程对应cpu2,第四个进程对应cpu3,也可以指定一个进程对应多个cpu。比如0101表示进程对应cpu0/cpu2。
worker_rlimit_nofile:指定每个woker可以打开的文件描述符数目,一般和worker_connections的值是相同的。
event module:控制nginx处理连接的方式。
events { use epoll; worker_connections 10240;}
注:use:使用网络IO模型,epoll模型比select模型效率高很多。
worker_connections:每个worker能够处理的最大连接数,取决于ulimit -n的值。
nginx并发连接数:<worker_processes*worker_connections。
关于网络IO模型以后需详细学习。
参考文档