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的核心数量。

参考资料:
CPU个数与核心数
查看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)

posted @ 2020-12-31 16:27  努力吧阿团  阅读(791)  评论(0)    收藏  举报