Nginx进程
启动nginx以后,默认有两个nginx进程,一个master进程,一个worker进程。
$ ps -ef | grep nginx
root 92134 1 0 09:27 ? 00:00:00 nginx: master process nginx
nobody 92135 92134 0 09:27 ? 00:00:00 nginx: worker process
root 110076 90545 0 15:35 pts/1 00:00:00 grep --color=auto nginx
master进程:
也叫主进程,只能有一个,负责管理worker进程,负责读取配置文件、判断配置文件语法等工作。
worker进程:
主要用于处理请求,可以自定义个数,可以有多个。
worker进程
语法
#我的电脑是6核心,所以一般不会大于6
worker_processes 6;
#当值为auto时,nginx会自动检测当前主机的cpu核心数量,并启动对应数量的worker进程。
worker_processes auto;
只能在main区域中使用
worker_processes的值一般情况下不会大于服务器中cpu的核心数量。
将worker进程与cpu核心进行绑定
可以避免cpu在切换进程时产生性能损耗。
需要使用worker_cpu_affinity指令,该指令只存在main上下文中。
CPU掩码
假设CPU有4个核心,那么用如下方式表示
0000 表示4核心
0001 表示第一个核心
0010 表示第二个核心
0100 表示第三个核心
1000 表示第四个核心
#表示启动2个worker进程,分别绑定到01核与10核上
worker_processes 2;
worker_cpu_affinity 01 10;
指定worker进程以某用户身份运行
默认情况下worker进程是以nobody用户的身份运行的。
$ ps -ef | grep nginx
root 92134 1 0 09:27 ? 00:00:00 nginx: master process nginx
nobody 92135 92134 0 09:27 ? 00:00:00 nginx: worker process
root 110076 90545 0 15:35 pts/1 00:00:00 grep --color=auto nginx
语法
#指定worker进程以nginx用户的身份运行,只能在main上下文中使用。
user nginx;
其他进程
当nginx作为反向代理服务并且开启缓存功能时,会启动cache manager进程(负责管理缓存)和cache loader进程(加载缓存)。
缓存可以被多个worker进程共享使用。
学习来自:朱老师博客-Nginx短篇(7)
今天的学习是为了以后的工作更加的轻松!

浙公网安备 33010602011771号