Nginx工作模式简介

nginx有两种工作模式:master-worker模式和单进程模式。在master-worker模式下,有一个master进程和至少一个的worker进程,单进程模式顾名思义只有一个进程。这两种模式有各自的特点和适用场景。

Nginx两种工作模式

1、master-worker模式

master-worker模式下nginx启动成功后,会有一个master进程和至少一个的worker进程。master进程负责处理系统信号,加载配置,管理worker进程(启动,杀死,监控,发送消息/信号等)。worker进程负责处理具体的业务逻辑,也就是说,对外部来说,真正提供服务的是worker进程。生产环境下一般使用这种模式。
Centos7之Nginx的两种工作模式_第1张图片

优点:

1)稳定性高,只要还有worker进程存活,就能够提供服务,并且一个worker进程挂掉master进程会立即启动一个新的worker进程,保证worker进程数量不变,降低服务中断的概率。

2)配合linux的cpu亲和性配置,可以充分利用多核cpu的优势,提升性能

3)处理信号/配置重新加载/升级时可以做到尽可能少或者不中断服务

2、单进程模式

单进程模式下,nginx启动后只有一个进程,nginx的所有工作都由这个进程负责。因此,该模式一般只在开发阶段和调试时使用,生产环境下不会使用。
Centos7之Nginx的两种工作模式_第2张图片

优点:

单进程模式由于只有一个进程,因此可以很方便地利用gdb等工具进行调试。

缺点:

单进程模式不支持nginx的平滑升级功能,任何的信号处理都可能造成服务中断,并且由于是单进程,进程挂掉后,在没有外部监控的情况下,无法重启服务。