Heim  >  Artikel  >  Backend-Entwicklung  >  nginx事件模块指令

nginx事件模块指令

WBOY
WBOYOriginal
2016-08-10 08:48:38965Durchsuche
accept_mutexSyntax: accept_mutex [ on | off ]Default: onnginx 使用连接互斥锁进行顺序的accept()系统调用.
accept_mutex_delaySyntax: accept_mutex_delay Nms;Default: 500ms如果一个进程没有互斥锁,它将延迟至少多长时间。默认情况下,延迟是500ms 。
debug_connectionSyntax: debug_connection [ip | CIDR]Default: none该指令可以指定用于打印调试日志的ip例如
<span>error_log</span> /var/log/nginx/errors;
<span>events</span><span>{</span><span>debug_connection</span><span>192.168</span><span>.1</span><span>.1</span>;

<span>}</span>

devpoll_changesdevpoll_eventskqueue_eventsepoll_eventsSyntax: devpoll_changes这些参数指定了按照规定方式传递到或者来自内核的事件数,默认devpoll的值为32,其余为512。
multi_acceptSyntax: multi_accept [ on | off ]Default: offmulti_accept指定在nginx获取新的连接之后,是否尽可能多的调用accept()获取连接 rtsig_signoSyntax: rtsig_signo

Nginx在rtsig模式启用后使用两个信号,该指令指定第一个信号编号,第二个信号编号为第一个加1

默认rtsig_signo的值为SIGRTMIN+10 (40)。


rtsig_overflow_eventsrtsig_overflow_testrtsig_overflow_thresholdSyntax: rtsig_overflow_*这三个指令都与处理 rtsig队列溢出有关,当 rtsig队列溢出时,nginx清空队列,并在poll()和rtsig之间进行切换,poll()将未被处理的事件连续处理完,同时,为了防止产生新的溢出,rtsig会周期性的减少队列元素,当溢出被处理完成,会再次切换回rtsigrtsig_overflow_events 指定了poll监听数量,默认是16
rtsig_overflow_test 指定了poll处理多少数量的事件后, rtsig去减少队列元素,默认为32
rtsig_overflow_threshold 此选项只在linux 2.4有效,该选项指定队列被填满几分之几时再减少队列元素,默认为1/10。

useSyntax: use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]Default:
如果在./configure的时候指定了不止一种事件模型,那么可以设置其中一个,以便告诉nginx使用哪种事件模型。默认情况下nginx会在./configure时找出最适合系统的事件模型。
nginx的事件模型有如下几种
  • select - 标准方法。 如果当前平台没有更有效的方法,它是编译时默认的方法。你可以使用配置参数--with-select_module--without-select_module来启用或禁用这个模块。
  • poll - 标准方法。 如果当前平台没有更有效的方法,它是编译时默认的方法。你可以使用配置参数--with-poll_module--without-poll_module来启用或禁用这个模块。
  • kqueue - 高效的方法,使用于 FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X. 使用双处理器的MacOS X系统使用kqueue可能会造成内核崩溃。
  • epoll - 高效的方法,使用于Linux内核2.6版本及以后的系统。在某些发行版本中,如SuSE 8.2, 有让2.4版本的内核支持epoll的补丁。
  • rtsig - 可执行的实时信号,使用于Linux内核版本2.2.19以后的系统。默认情况下整个系统中不能出现大于1024个POSIX实时(排队)信号。这种情况对于高负载的服务器来说是低效的;所以有必要通过调节内核参数/proc/sys/kernel/rtsig-max来增加队列的大小。可是从Linux内核版本2.6.6-mm2开始, 这个参数就不再使用了,并且对于每个进程有一个独立的信号队列,这个队列的大小可以用 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. 为了防止出现内核崩溃的问题, 有必要安装 这个 安全补丁。

  • worker_connectionsSyntax: worker_connections number每个进程的最大连接数 通过worker_connections和worker_proceses可以计算出最大并发数,即最大并发数=work_connections x work_process

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    以上就介绍了nginx事件模块指令,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Vorheriger Artikel:php AES加密兼容netNächster Artikel:Laravel 5文档阅读摘要