nginx支持connection的多种处理方法。nginx运行的平台确定了可用的处理方法。
在特定平台下connection的多种处理方法中,nginx会自动选择一种最有效的方法。然而,如果需要,你可以使用显式use指令来选择一种connection处理方法。
connection支持下列各种处理方法:
1. select---标准方法。当缺少更有效率的方法时该平台自动构建此方法的支持模块。--with-select_module和--without-select_module配置参数可以用来启动或者停止构建该模块。
2. pool--标准方法。当该平台缺少更有效率的方法时自动构建此方法的支持模块。--with-pool_module和--without-pool_module配置参数可以用来启动或者停止构建该模块。
3. kqueue--用在FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0, and Mac OS X上的有效方法。
4. epool--用在linux2.6+上的有效方法。一些旧的版本例如SUSE8.2提供在kernel2.4版本上支持epool的补丁。
5. rtsig--实时信号。linux2.2.19版本以上的有效方法,默认情况下,系统级别的事件队列限制为不大于1024个。可以通过修改这个限制,修改方法是修改/proc/sys/kernel/rtsig-max kernel参数。然而在linux2.6.6-mm2版本中该参数已经取消,此时每个进程拥有自己的事件队列,事件队列的大小由RLIMIT_SIGPENDING来限制,也可以通过修改work_rlimit_sigpending来改变。
当队列溢出时,nginx抛弃队列并且回退到poll connection处理方法直到队列恢复到正常状态。
6./dev/poll--在Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+, 和Tru64 UNIX 5.1A+.使用的有效方法。
7. eventport--在Solaris 10.上使用的有效方法。