高性能Web服务器Nginx的配置与部署研究(8)核心模块之事件模块
一、事件模块的作用是什么?
用来设置Nginx处理链接请求。
二、相关指令
1. accept_mutex
含义:设置是否使用连接互斥锁进行顺序的accept()系统调用。
语法:accept_mutex <on|off>;
缺省:on
示例:accept_mutex off;
2. accept_mutex_delay
含义:设置获得互斥锁的最少延迟时间。
语法:accpet_mutex_delay <number of millisecs>
缺省:500ms
示例:accpet_mutex_delay 1000ms;
3. debug_connection
含义:设置指定的clients产生debug日志。
语法:debug_connection [ip|CIDR];
缺省:none
示例:debug_connection 172.16.44.96;
一段较完整的事件模块代码如下:
error_log /data/nginx/log/error.log;
events {
debug_connection172.16.44.96;
}
4. multi_accept
含义:设置是否允许,Nginx在已经得到一个新连接的通知时,接收尽可能更多的连接。
语法:multi_accept <on|off>;
缺省:off
示例:multi_accept on;
5. rtsig_signo
略
6. rtsig_overflow_threshold
7. use
语法:use [kqueue | rtsig | epoll | /dev/poll | select | poll | eventport];
注意:如果在./configure的时候指定了不止一种事件模型,那么可以设置其中一个,告诉Nginx使用哪种事件模型。默认情况下,Nginx会在./configure时找出最适合系统的事件模型。
8. worker_connections
语法:worker_connection <number>;
注意:
最大连接数的计算公式如下:
max_clients = worker_processes * worker_connections;
如果作为反向代理,因为浏览器默认会开启2个连接到server,而且Nginx还会使用fds(file descriptor)从同一个连接池建立连接到upstream后端。则最大连接数的计算公式如下:
max_clients = worker_processes * worker_connections / 4;