以下只能在 event 块中进行配置。
设置网络连接的序列化
当某一个时刻只有一个网络连接到来时,多个睡眠进程会被同时叫醒,,但只有一个进程可获得连接。如果每次唤醒的进程数太多,会影响一部分系统性能。为解决这样的问题,
Nginx配置中包含了一条指令 accept_mutex,当其设置为开启的时候,就会对多个Nginx进程接收连接进行序列化,防止多个进程对连接争抢。
语法为:
设置是否允许同时接收多个网络连接accept_mutex on | off;
此指令默认为开启(on)状态,
事件驱动模型的选择每个Nginx 服务器 的worker process 都有能力同时接收多个新到达的网络连接,但是这需要在配置之文件中进行设置,其指令为multi_accept ,语法结构:
此指令默认为关闭(off)状态,即每个worker process 一次只能接收一个新到达的网络连接。multi_axccept on | off;
配置最大的连接数Nginx 服务器提供了多种事件驱动模型来处理网络消息。配置文件中为我们提供了相关指令来强制 Nginx 服务器选择那种事件驱动模型进行消息处理,其指令为use,
语法结构为:
method可选择的内容有:select , poll、kqueue、cpoll、rtsig、/dev/poll以及wcentport,其中几种模型是比较常用的use method;
注意:
可以在编译时使用--with-select_module 和 --without-select_module 设置是否强制编译select 模块到 Nginx 内核;使用--with-poll_module 和 --without-poll_module 设置是否强制编译poll模块到 Nginx 内核;
指令worker_connections 主要用来社会允许每一个worker process 同时开启的的最大连接数。语法结构为:
此指令的默认设置为512.worker_connections number;
注意:
这里的number 不仅仅包括和前端用户建立的连接数,而是包括所有可能的连接数。另外,number 值 不能大于操作系统支持打开的最大文件句柄数量。