当启动nginx后,默认情况下会有两个进程,我们使用ps -ef | grep nginx查看一下:

我们可以看到有一个master进程,有一个worker进程
- master进程:主进程,相当于一个领导者,用来管理worker进程,master接收外界的信号,然后分发给worker进程,比如:
./nginx -s stop
./nginx -s quit
./nginx -s reload
./nginx -t
- worker进程:工作进程,相当于一个工作者,是实际工作的角色,相当于为master服务,worker会连接很多的客户端请求并且响应数据,和后端服务进行通信
其中worker进程是可以配置数量的,怎么配置呢?我们打开nginx.conf文件找到如下配置:
worker_processes 1;
通过控制worker_processes 的值的大小就可以控制worker的进程数,比如修改为2,然后执行./nginx -s reload,进程数如下:

master进程和worker进程的这种多进程模型的好处:
- 如果是多线程的模型,线程之间是有影响的,共用一个内存,需要开发人员自己维护内存管理;
- 多进程模型的话,虽然比多线程模型占用更多的内存和CPU资源,但是进程之间相互独立,不会相互影响,一旦一个进程出问题了,关闭就可以,不会影响其他进程的运行,而多线程的模型就会整体关闭;
1017

被折叠的 条评论
为什么被折叠?



