摘要

控制Nginx处理连接的方式

指令

accept_mutex

语法:accept_mutex [ on | off ]
默认值:on
Nginx使用连接互斥锁进行顺序的accept()系统调用

accept_mutex_delay

语法:accept_mutex_delay Nms;
默认值:500ms
如果一个进程没有互斥锁,它将至少在这个值的时间后被回收,默认是500ms
debug_connection

语法:debug_connection [ip | CIDR]
默认值:none
0.3.54版本后,这个参数支持CIDR地址池格式。
这个参数可以指定只记录由某个客户端IP产生的debug信息。
当然你也可以指定多个参数。

error_log /var/log/nginx/errors;
events {
  debug_connection   192.168.1.1;
}
fffdgfdgfd

devpoll_changes

devpoll_events

kqueue_changes

kqueue_events

epoll_events语法:devpoll_changes
默认值:
这些参数指定了按照规定方式传递到或者来自内核的事件数,默认devpoll的值为32,其余为512。

multi_accept

语法:multi_accept [ on | off ]
默认值:off
multi_accept在Nginx接到一个新连接通知后调用accept()来接受尽量多的连接

rtsig_signo

语法:rtsig_signo
默认值:
Nginx在rtsig模式启用后使用两个信号,该指令指定第一个信号编号,第二个信号编号为第一个加1
默认rtsig_signo的值为SIGRTMIN+10 (40)。

rtsig_overflow_events

rtsig_overflow_test

rtsig_overflow_threshold

语法:rtsig_overflow_*
默认值:
这些参数指定如何处理rtsig队列溢出。当溢出发生在nginx清空rtsig队列时,它们将连续调用poll()和 rtsig.poll()来处理未完成的事件,直到rtsig被排空以防止新的溢出,当溢出处理完毕,nginx再次启用rtsig模式。
rtsig_overflow_events specifies指定经过poll()的事件数,默认为16
rtsig_overflow_test指定poll()处理多少事件后nginx将排空rtsig队列,默认值为32
rtsig_overflow_threshold只能运行在Linux 2.4.x内核下,在排空rtsig队列前nginx检查内核以确定队列是怎样被填满的。默认值为1/10,“rtsig_overflow_threshold 3”意为1/3。
use

语法:use [ kqueue | rtsig | epoll | /dev/poll | select | poll | eventport ]
默认值:
如果你在./configure的时候指定了不止一个事件模型,你可以通过这个参数告诉nginx你想使用哪一个事件模型,默认情况下nginx在编译时会检查最适合你系统的事件模型。
你可以在这里看到所有可用的事件模型并且如果在./configure时激活它们。
worker_connections

语法:worker_connections
默认值:
worker_connections和worker_proceses(见主模块)允许你计算理论最大连接数:
最大连接数 = worker_processes * worker_connections

在反向代理环境下:
最大连接数 = worker_processes * worker_connections/4

由于浏览器默认打开2个连接到服务器,nginx使用来自相同地址池的fds(文件描述符)与前后端相连接