nginx支持各种连接处理方法。一个方法是否可用,依赖于使用的平台。在支持几个方法的平台上,nginx通常会自动选择效率最高的方法。然而,如果需要的话,可以使用”use“指令,明确选择一个连接处理方法。
下面是支持的连接处理方法:
- select - 标准方法。在缺少更有效的方法的平台上,select模块会自动创建。”--with-select_module&--without--select_module“ 配置选项,可以用来强制启用或禁用模块的创建。
- poll - 标准方法。在缺少更有效的方法的平台上,select模块会自动创建。”--with-poll_module&--without--poll_module“ 配置选项,可以用来强制启用或禁用模块的创建。
- kqueue - 有效方法。应用在FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0, and Mac OS X平台上
- epoll - 有效方法。应用在Linux 2.6+
- nginx1.11.3版本后,支持
EPOLLRDHUP
(Linux 2.6.17, glibc 2.8) andEPOLLEXCLUSIVE
(Linux 4.5, glibc 2.24)flags
一些更老的版本,例如:SuSE8.2,提供了patches(补丁),支持添加epoll到2.4的内核。
/dev/poll - 有效方法,应用在Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+, and Tru64 UNIX 5.1A+
- eventport - event ports,有效方法,应用在Solaris 10