【问题标题】:Why there are 3 processes for nginx?为什么nginx有3个进程?
【发布时间】:2022-04-07 19:58:41
【问题描述】:

我的操作系统是Ubuntu,我使用ps -aux |grep nginx,我发现了3个nginx的进程;所以我的问题是为什么 nginx 有 3 个进程?似乎一个进程是 root 的,另外两个来自 www-data:

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-config


    【解决方案1】:

    root 运行的进程是主 NGINX 进程。 另外两个是 worker 进程。

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

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

    工作进程已删除权限,因为它们只需要能够读取网站文件。

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

    您拥有的工作进程越多,您的网络服务器在多核系统上可以处理的连接就越多

    例如你有4核CPU。通过设置worker_processes 4;,您可以确保所有内核都用于处理连接,因此它将提高繁忙网站的性能。

    此外,您可以设置worker_processes auto;。这将使 NGINX 确定逻辑 CPU 单元的数量并设置与之对应的工作器数量。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-10-26
        • 1970-01-01
        • 2017-12-04
        • 2014-11-16
        • 2011-08-14
        • 1970-01-01
        • 2011-09-02
        • 1970-01-01
        • 2017-09-24
        相关资源
        最近更新 更多