nginx

连接处理方法


english
русский

简体中文
עברית
日本語
türkçe

新闻 [en]
nginx 介绍
下载 [en]
安全漏洞 [en]
文档
FAQ
外部连接 [en]
书籍 [en]
支持 [en]
捐献 [en]

trac
wiki
twitter
nginx.com

nginx支持多种连接处理方法,而哪些处理方法可用则取决于使用的平台。 如果平台支持多种方法,那么nginx一般会自动选择最高效的方法。 如果需要,也可以使用use指令明确指定连接处理方法。

nginx支持下列连接处理方法:

  • select — 标准方法。 在平台不支持更高效的方法时,nginx会自动编译此模块。 可以使用--with-select_module--without-select_module编译选项 强行开启或禁止编译此模块。

  • poll — 标准模块。 在平台不支持更高效的方法时,nginx会自动编译此模块。 可以使用--with-poll_module--without-poll_module编译选项 强行开启或禁止编译此模块。

  • kqueue — FreeBSD 4.1+、OpenBSD 2.9+、NetBSD 2.0和Mac OS X的高效方法。

  • epoll — Linux 2.6+的高效方法。

    一些旧的发行版,比如SuSE 8.2,提供了补丁,在2.4内核上支持了epoll方法。

  • rtsig — 实时信号,Linux 2.2.19+的高效方法。 系统级的事件队列默认有1024个信号的限制。在高负载的服务器上,将此限制上调可能是必须的。 调整的方法是改变/proc/sys/kernel/rtsig-max内核参数的值。 在Linux 2.6.6-mm2上,这个参数不存在,而且每个进程拥有自己的事件队列。 每个队列的长度由RLIMIT_SIGPENDING所限,并可使用worker_rlimit_sigpending指令修改。

    队列溢出时,nginx丢弃这个队列,并回退到poll连接处理方法,直到情况恢复正常为止。

  • /dev/poll — Solaris 7 11/99+、HP/UX 11.22+ (eventport)、IRIX 6.5.15+和Tru64 UNIX 5.1A+的高效方法。

  • eventport — 事件端口,Solaris 10的高效方法。

翻译: cfsego