Nginx支持各种连接处理方法。特定处理方法的可用性取决于所使用的平台(你使用的操作系统)。在支持多种处理方法的平台上,Nginx 通常会自动选择最有效的处理方法。但是,如果需要,可以使用 USE 指令显式地选择连接处理方法。
Nginx支持下列连接处理方法:
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上使用的有效方法
epoll — 在Linux2.6+上使用的有效方法。自1.11.3以来,支持EPOLLRDHUP(Linux 2.6.17,glibc 2.8)和EPOLLEXCLUSIVE(Linux4.5,glibc 2.24)标志。一些较旧的发行版(如SUSE 8.2)提供补丁,将EPOLL支持添加到2.4内核中。
/dev/poll — 在Solaris 7 11/99+、HP/UX 11.22+(eventport)、IRIX 6.5.15+和Tru64 UNIX 5.1A+上使用的有效方法。
eventport — 事件端口,Solaris 10+上使用的方法(由于已知的问题,建议使用/dev/poll方法)。
总结:
如果 nginx 所在的操作系统支持非标准化的处理方法(因为更有效的处理),则使用非标准化处理方法。如果不支持,则使用标准处理方法 select 或 poll。