Как Nginx обрабатывает Запросы HTTP?

Я понимаю поток, управляемый, что Apache использует: каждое соединение открывает поток и когда ответ отправляется, обсуждение закрывается, высвобождая средства на другие потоки).

Но я не получаю управляемый событиями дизайн, который использует Nginx. Я считал некоторые основы об управляемом событиями дизайне.. но я не понимаю, как это используется nginx для обработки веб-запросов.

Где я могу считать и понять, как Nginx обрабатывает соединения управляемым событиями способом, таким образом, я добираюсь, почему это лучше, вместо того, чтобы просто признать, что основанный на событии дизайн лучше, чем управляемый потоком дизайн.

57
задан bakkal 9 August 2010 в 02:27
поделиться

1 ответ

Nginx использует Reactor. По сути, он однопоточный (но может форкать несколько процессов, чтобы использовать несколько ядер). Главный цикл событий ожидает сигнала ОС о готовности - например, что данные доступны для чтения из сокета, после чего они считываются в буфер и обрабатываются. Один поток может очень эффективно обслуживать десятки тысяч одновременных соединений (модель "поток на соединение" не справится с этой задачей из-за огромных накладных расходов на переключение контекста, а также большого потребления памяти, поскольку каждому потоку нужен свой стек).

55
ответ дан 24 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: