nginx支持多種連接處理模型。具體的模型取決于具體的平臺。當一個平臺支持多種模型時,nginx會自動選擇最高效的模型。當然,可以通過use指令顯示指定使用哪種模型。
下面是nginx支持的連接處理模型。
- select
標準模型。當平臺缺乏更有效的模型時,該模塊會自動構(gòu)建。可以通過--with-select_module和--without-select_module配置參數(shù)強制啟用和關(guān)閉構(gòu)建該模塊。 - poll
標準模型。當平臺缺乏更有效的模型時,該模塊會自動構(gòu)建??梢酝ㄟ^--with-poll_module和--without-poll_module配置參數(shù)強制啟用和關(guān)閉構(gòu)建該模塊。 - kqueue
在 FreeBSD 4.1+、OpenBSD 2.9+、BetBSD 2.0 和 MacOS平臺上有效的模型。 - epoll
在 Linux 2.6+ 平臺上有效的模型。
nginx 1.11.3 版本開始,支持
EPOLLRDHUP和EPOLLEXCLUSIV
- /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)
use指令
Syntax: use method;
Default: —
Context: events
指定使用何種連接處理模型。無需顯示指定,因為nginx會默認選擇使用最佳的模型。