Please help me understand what worker_processes
and worker_connections
are in Nginx and what is the relation between them. I have looked under Nginx directives it says:
worker_processes
A worker process is a single-threaded process.
If Nginx is doing CPU-intensive work such as SSL or gzipping and you have 2 or more CPUs/cores, then you may set worker_processes to be equal to the number of CPUs or cores.
If you are serving a lot of static files and the total size of the files is bigger than the available memory, then you may increase worker_processes to fully utilize disk bandwidth.
worker_connections
The worker_connections and worker_processes from the main section allows you to calculate max clients you can handle:
max clients = worker_processes * worker_connections
So I understand that worker_processes
is single threaded and its value is helpful in CPU-intensive work, but I am unable to understand "allows you to handle max clients you can handle".
If anyone can give an example as given in worker_processes
it would be helpful for me to understand.
worker_connections is the number of simultaneous connections; so they are simply stating how to calculate, for example:
you are only running 1 process with 512 connections, you will only be able to serve 512 clients.
If 2 processes with 512 connections each, you will be able to handle 2x512=1024 clients.
The number of connections is limited by the maximum number of open files (RLIMIT_NOFILE) on your system
nginx
has a better, updated description of worker connections.
fyi, the wiki section is considered obsolete (dont ask), now only the main nginx.org/en/docs are preferred...