Nginx中的worker_processes和worker_connections是什么?

9 nginx

请帮助我了解worker_processesworker_connections在Nginx的,什么是他们之间的关系.我看过Nginx指令,它说:

worker_processes

工作进程是单线程进程.

如果Nginx正在进行CPU密集型工作(如SSL或gzipping),并且您有2个或更多CPU /核心,则可以将worker_processes设置为等于CPU或核心数.

如果您提供大量静态文件并且文件的总大小大于可用内存,那么您可以增加worker_processes以充分利用磁盘带宽.

worker_connections

main部分中的worker_connections和worker_processes允许您计算可以处理的最大客户端:

max clients = worker_processes * worker_connections

所以我理解这worker_processes是单线程的,它的价值有助于CPU密集型工作,但我无法理解"允许你处理你可以处理的最大客户端".

如果有人能给出一个例子,worker_processes那么对我来说理解是有帮助的.

pet*_*ete 11

worker_connections是同时连接的数量; 所以他们只是简单地说明如何计算,例如:

  • 您只运行512个连接的1个进程,您将只能为512个客户端提供服务.

  • 如果2个进程各有512个连接,则可以处理2x512 = 1024个客户端.

连接数受系统上最大打开文件数(RLIMIT_NOFILE)的限制

nginx 具有更好,更新的工作者连接描述.

fyi,wiki部分被认为是过时的(不要问),现在只有主要的nginx.org/en/docs是首选...

  • 我认为这里需要注意的是,根据[NGINX文档](http://nginx.org/en/docs/ngx_core_module.html#worker_connections),worker_connections是一个worker可以打开的最大并发连接数,是这样的客户端或后端服务器(在代理的情况下)。因此,如果您使用 nginx 作为反向代理,则worker_processes *worker_connections 的结果**不一定**是您可以服务的客户端数量。 (4认同)

Web*_*man 8

来自Nginx 的初学者指南

nginx 有一个主进程和几个工作进程。主进程的主要目的是读取和评估配置,以及维护工作进程。工作进程对请求进行实际处理。nginx 采用基于事件的模型和依赖于操作系统的机制来有效地在工作进程之间分配请求。工作进程的数量在配置文件中定义,可以为给定的配置固定或自动调整为可用的 CPU 内核数量


Pre*_*eti 7

  • 工作进程:

    • 处理传入请求的 Nginx 工作进程。
    • 将此设置为worker_process auto;根据可用内核自动调整 Nginx 工作进程的数量。
    • 如果您有 IO 访问权限,这可能会超出可用内核的范围。
  • 工人连接:

    • 每个工作进程默认可以打开一个 512 个连接。
    • 您可以通过 更改此限制worker_connections <no>
    • 您可以将其设置为 max limit ulimit -n
    • 因此,

    max_clients = worker processes * worker connections