Connection processing methods
nginx supports a variety of connection processing methods. The availability of a particular method depends on the platform used. On platforms that support several methods nginx will normally select the most efficient method automatically. However, if needed, a connection processing method can be selected explicitly with the use directive.
The following connection processing methods are supported:
select
— standard method. The supporting module is built automatically on platforms that lack more efficient methods. The--with-select_module
and--without-select_module
configuration parameters can be used to forcibly enable or disable the build of this module.poll
— standard method. The supporting module is built automatically on platforms that lack more efficient methods. The--with-poll_module
and--without-poll_module
configuration parameters can be used to forcibly enable or disable the build of this module.kqueue
— efficient method used on FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0, and Mac OS X.epoll
— efficient method used on Linux 2.6+.Some older distributions like SuSE 8.2 provide patches that add epoll support to 2.4 kernels.
rtsig
— real time signals, efficient method used on Linux 2.2.19+. By default, the system-wide event queue is limited by 1024 signals. On loaded servers it may become necessary to increase this limit by changing the/proc/sys/kernel/rtsig-max
kernel parameter. However, in Linux 2.6.6-mm2 this parameter is gone, and each process now has its own event queue. The size of each queue is limited byRLIMIT_SIGPENDING
and can be changed with worker_rlimit_sigpending.On queue overflow, nginx discards the queue and falls back to
poll
connection processing method until the situation gets back to normal./dev/poll
— efficient method used on Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+, and Tru64 UNIX 5.1A+.eventport
— event ports, efficient method used on Solaris 10.