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等區別又有哪些呢?
跟我有毛關係。感興趣的同學可以自己搜下。