-
select
— 标准方法。
在平台不支持更高效的方法时,nginx会自动编译此模块。
可以使用--with-select_module
和--without-select_module
编译选项
强行开启或禁止编译此模块。
-
poll
— 标准模块。
在平台不支持更高效的方法时,nginx会自动编译此模块。
可以使用--with-poll_module
和--without-poll_module
编译选项
强行开启或禁止编译此模块。
-
kqueue
— FreeBSD 4.1+、OpenBSD 2.9+、NetBSD 2.0和Mac OS X的高效方法。
-
epoll
— Linux 2.6+的高效方法。
一些旧的发行版,比如SuSE 8.2,提供了补丁,在2.4内核上支持了epoll方法。
-
rtsig
— 实时信号,Linux 2.2.19+的高效方法。
系统级的事件队列默认有1024个信号的限制。在高负载的服务器上,将此限制上调可能是必须的。
调整的方法是改变/proc/sys/kernel/rtsig-max
内核参数的值。
在Linux 2.6.6-mm2上,这个参数不存在,而且每个进程拥有自己的事件队列。
每个队列的长度由RLIMIT_SIGPENDING
所限,并可使用worker_rlimit_sigpending指令修改。
队列溢出时,nginx丢弃这个队列,并回退到poll
连接处理方法,直到情况恢复正常为止。
-
/dev/poll
— Solaris 7 11/99+、HP/UX 11.22+ (eventport)、IRIX 6.5.15+和Tru64 UNIX 5.1A+的高效方法。
-
eventport
— 事件端口,Solaris 10的高效方法。