Почему 'multi_accept' 'выключен' по умолчанию в Nginx?


Ответы:


13

Вероятно, потому что при включенном все рабочие процессы активны и пытаются обрабатывать все входящие запросы одновременно. Если этот параметр отключен, Nginx решает, какой дочерний процесс обрабатывает запрос один за другим. Поскольку Nginx очень эффективен в этом, это, вероятно, хорошо служит большинству людей. Некоторые считают, что его можно включить, так как это может затопить рабочие соединения запросами. Ваши настройки TCP на уровне ОС, скорее всего, тоже сыграют в этом свою роль.


3
У меня была точная ситуация. Я попытался выяснить, что делают автоматические команды worker_rlimit_nofile, worker_connections и worker_processes. Nginx - это обратный прокси-сервер для приложения, которое принимает веб-сокеты. Конфигурация Nginx позволяет 50 соединений для каждого работника. Когда у меня есть два рабочих (поэтому должно быть установлено 100 соединений), и multi_accept включен, я получаю ошибку, что веб-сокеты не могут быть созданы (работник, который уже имеет 50 соединений, пытается это ...). Когда multi_accept выключен, все работает отлично.
Hamburml
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.