为什么nginx有3个流程?

为什么nginx有3个流程?,nginx,nginx-config,Nginx,Nginx Config,我的操作系统是ubuntu,我使用ps-aux | grep nginx,找到3个nginx的进程,我的问题是为什么nginx有3个进程?似乎一个进程是根进程,另两个进程来自www数据 root 7833 0.0 0.0 126092 1476 ? Ss 12:32 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on; www-data 7834 0.0

我的操作系统是ubuntu,我使用ps-aux | grep nginx,找到3个nginx的进程,我的问题是为什么nginx有3个进程?似乎一个进程是根进程,另两个进程来自www数据

root      7833  0.0  0.0 126092  1476 ?        Ss   12:32   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

www-data  7834  0.0  0.0 126504  3124 ?        S    12:32   0:00 nginx: worker process

www-data  7835  0.0  0.1 126504  5068 ?        S    12:32   0:00 nginx: worker process

根进程是nginx访问网络和系统上文件所必需的

其他两个进程在配置文件中设置。看看这里,您将看到一个设置,它取决于服务器上处理器中的内核数量。随着访问量的增加,对服务器的访问增加,可用进程越多,意味着计算能力越强


有可能(我不记得)两个进程是默认设置。

作为
根运行的进程是主NGINX进程。
另外两个是辅助进程

在NGINX服务启动过程中,主进程是第一个启动的进程。 它跨越了实际处理连接的工作进程

主进程以root用户身份运行,以便能够执行绑定到特权网络端口、在配置加载期间读取TLS证书/密钥等操作

工作进程已放弃特权,因为它们只需要能够读取网站文件

工作进程的数量可以通过配置指令进行控制。默认值为
1
。这意味着在具有默认配置的系统上,您将看到总共2个进程(1个主进程和1个工作进程)

工作进程越多,web服务器在多核系统上可以处理的连接就越多

例如,您有4核CPU。通过设置
worker\u进程4确保所有核心都被用于处理连接,这样可以在繁忙的网站上提高性能

此外,您可以只设置
worker\u进程自动。这将使NGINX确定逻辑CPU单元的数量,并设置与之对应的工作线程的数量