Re: Nginx и потоки
neon
nginx-forum на forum.nginx.org
Ср Мар 9 13:28:20 UTC 2022
Если совсем на пальцах, то работает как-то так:
1. главный процесс создает слушающий сокет
2. главный процесс спавнит столько дочерних процессов, сколько указано в
конфиге
3. каждый дочерний процесс путем опроса слушающего сокета через
select\poll\epoll\kqueue получает соединение с клиентом(эта операция
безопасна для доступа из нескольких процессов) и дальше с этим соединением
работает исключительно этот процесс(в один тред) через те же
select\epoll\kqueue
Ведь если убрать всю сложную логику обработки запроса, то все, что делает
nginx - это пересылает байтики из одного сокета в другой. Тут
многотредовость не нужна - более чем достаточно вот такого разбиения на
несколько воркеров.
Posted at Nginx Forum: https://forum.nginx.org/read.php?21,292726,293815#msg-293815
Подробная информация о списке рассылки nginx-ru