Методы обработки соединений

nginx


english
עברית
日本語
русский
türkçe

новости [en]

об nginx
скачать
безопасность [en]
pgp ключи [en]
документация
введение [en]
howto
faq
trac
wiki
ссылки [en]
книги [en]
поддержка
пожертвования [en]
nginx.com
@nginxorg

nginx поддерживает следующие методы обработки соединений, которые можно задать директивой use:

  • select — стандартный метод. Модуль для поддержки этого метода собирается автоматически, если на платформе не обнаружено более эффективного метода. Можно принудительно разрешить или запретить сборку этого модуля с помощью параметров --with-select_module или --without-select_module.

  • poll — стандартный метод. Модуль для поддержки этого метода собирается автоматически, если на платформе не обнаружено более эффективного метода. Можно принудительно разрешить или запретить сборку этого модуля с помощью параметров --with-poll_module или --without-poll_module.

  • kqueue — эффективный метод, используемый во FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 и MacOS X. На двух-процессорных машинах под управлением MacOS X использование kqueue может привести к kernel panic.

  • epoll — эффективный метод, используемый в Linux 2.6+. В некоторых дистрибутивах, например SuSE 8.2, есть патчи для поддержки epoll ядром 2.4.

  • rtsig — real time signals, эффективный метод, используемый в Linux 2.2.19+. По умолчанию в очереди может находиться не более 1024 сигналов для всей системы. Этого недостаточно для нагруженных серверов, поэтому нужно увеличить размер очереди с помощью параметра ядра /proc/sys/kernel/rtsig-max. Однако, начиная с Linux 2.6.6-mm2, этого параметра уже нет и для каждого процесса существует отдельная очередь сигналов, размер которой задаётся с помощью RLIMIT_SIGPENDING.

    При переполнении очереди nginx сбрасывает её и начинает обрабатывать соединения с помощью метода poll до тех пор, пока ситуация не нормализуется.

  • /dev/poll — эффективный метод, используемый в Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ и Tru64 UNIX 5.1A+.

  • eventport — event ports, эффективный метод, используемый в Solaris 10. Во избежания kernel panic, нужно установить патч.