Почему для nginx есть 3 процесса? - PullRequest
0 голосов
/ 26 мая 2020

Моя ОС - 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

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Процесс, который выполняется как root, является главным процессом NGINX. Два других - это процессы worker .

Во время запуска службы NGINX главный процесс запускается первым. Он охватывает рабочие процессы, которые фактически обрабатывают соединения.

Главный процесс работает как root, чтобы иметь возможность выполнять такие действия, как привязка к привилегированным сетевым портам, чтение сертификатов / ключей TLS во время загрузки конфигурации.

Рабочие процессы потеряли привилегии, поскольку им требуется только возможность читать файлы веб-сайтов.

Количество рабочих процессов можно контролировать с помощью конфигурации worker_processes директива. Значение по умолчанию 1. Это означает, что в системе с конфигурацией по умолчанию вы увидите всего 2 процесса (1 главный и 1 рабочий).

Чем больше у вас рабочих процессов, тем больше подключений ваш веб-сервер может обработать на многоядерная система .

Например, у вас 4-ядерный процессор. Установив worker_processes 4;, вы убедитесь, что все ядра используются для обработки соединений, поэтому это улучшит производительность на загруженном веб-сайте.

Более того, вы можете просто установить worker_processes auto;. Это будет иметь NGINX, чтобы определить количество логических модулей ЦП и установить соответствующее количество рабочих.

0 голосов
/ 26 мая 2020

Процесс root необходим nginx для доступа к сети и файлам в вашей системе.

Два других процесса установлены в вашем файле конфигурации. Посмотрите туда, и вы увидите настройку, которая зависит от количества ядер в процессоре на вашем сервере. Больше доступных процессов означает большую вычислительную мощность, поскольку доступ к вашему серверу увеличивается с увеличением количества посетителей.

Возможно (я не припомню), что два процесса являются настройкой по умолчанию.

...