nginx支持多种连接处理方式,同时具体可以使用何种方式又依赖于操作系统。当一个系统支持多种连接处理方式时,nginx默认会自动选择效率最高的方式。当然,我们也可以通过use指令显式指定。
- select方式,一种标准方式。当不存更为高效的方式时会使用select-module进行编译构建。使用–with-select_module 和 --without-select_module可以显式使用/禁止使用模块。
- poll方式,一种标准方式。当不存更为高效的方式时会使用poll-module进行编译构建。使用–with-poll_module 和 --without-poll_module可以显式使用/禁止使用模块。
- kqueue方式,一种高效方式。应用于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0, and macOS。
- epoll方式,一种高效方式。应用于Linux 2.6+。
- /dev/poll方式,一种高效方式。应用于Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+, and Tru64 UNIX 5.1A+。
- eventport方式,基于事件端口的一种方式,应用于Solaris 10+(由于一些明显缺陷,推荐使用/dev/poll替代)。
那么select与poll有什么区别呢?它们与epoll等区别又有哪些呢?
跟我有毛关系。感兴趣的同学可以自己搜下。