Если совсем на пальцах, то работает как-то так: 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 mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org