nginx源码分析(14)-运维与配置(2)
2009-10-24 14:08
573 查看
事件模块的指令集主要是配置epoll、kqueue、select、poll等,这些指令控制nginx处理连接的方式,这些指令有:
1、accept_mutex
语法形式:accept_mutex [on|off]
默认值:on
nginx使用accept mutex保护accept()系统调用。accept mutex在不同的系统上会使用原子指令实现或者使用文件上锁实现。
2、accept_mutex_delay
语法形式:accept_mutex_delay Nms;
默认值:500ms
如果一个worker进程未拥有accept mutex,它至少延迟这么长时间之后再尝试抢夺。
3、debug_connection
语法形式:debug_connecton [ip|CIDR]
默认值:none
自从0.3.54这个选项支持CIDR地址格式,这个选项控制来自于该IP或者NET的客户端才写debug log。例如:
error_log /var/log/nginx/errors;
events {
debug_connection 192.168.1.1;
}
4、devpoll_changes
语法形式:devpoll_changes number
默认值:32
使用devpoll_changes方式,设置可以与内核之间传递事件的数量。
5、devpoll_events
语法形式:devpoll_events number
默认值:32
使用devpoll_events方式,设置可以与内核之间传递事件的数量。
6、kqueue_changes
语法形式:kquue_changes number
默认值:512
使用kequeue_changes方式,设置可以与内核之间传递事件的数量。
7、kqueue_events
语法形式:kquue_events number
默认值:512
使用kequeue_events方式,设置可以与内核之间传递事件的数量。
8、epoll_events
语法形式:epoll_events number
默认值:512
使用epoll_events方式,设置可以与内核之间传递事件的数量。
9、multi_accept
语法形式:multi_accept [on|off]
默认值:off
设置了该选项,当nginx收到新连接的通知,accept()会尝试返回尽量多的连接请求。
10、rtsig_signo
11、rtsig_overflow_events
12、rtsig_overflow_test
13、rtsig_overflow_threshold
这几个指令是使用信号驱动IO方式事件模型的配置项,在linux系统一般使用epoll,这里就不详细解释了。
14、use
语法形式:use [kqueue|rtsig|epoll|/dev/poll|select|poll|eventport]
默认值:
使用事件模型。一般在./configure脚本执行的时候nginx会根据当前操作系统情况选择合适的事件模型,如果你确定你的系统上有几种事件模型,可以使用这个指令更改事件模型。
15、worker_connections
语法形式:worker_connections number
默认值:
前面介绍过,可以计算出max_clients:
max_clients = worker_processes * worker_connections
不过在用作反向代理的时候,max_clients = worker_processes * worker_connections/4,这是因为此时浏览器默认会打开两条到server的连接,nginx又会使用两个文件描述字连接到后端服务。
至此,nginx的核心模块配置(core模块和event模块)就介绍完了,而nginx配置的灵活与强大体现在http模块的配置中,这一部分又可以分成二十多个不同的模块,go on.
1、accept_mutex
语法形式:accept_mutex [on|off]
默认值:on
nginx使用accept mutex保护accept()系统调用。accept mutex在不同的系统上会使用原子指令实现或者使用文件上锁实现。
2、accept_mutex_delay
语法形式:accept_mutex_delay Nms;
默认值:500ms
如果一个worker进程未拥有accept mutex,它至少延迟这么长时间之后再尝试抢夺。
3、debug_connection
语法形式:debug_connecton [ip|CIDR]
默认值:none
自从0.3.54这个选项支持CIDR地址格式,这个选项控制来自于该IP或者NET的客户端才写debug log。例如:
error_log /var/log/nginx/errors;
events {
debug_connection 192.168.1.1;
}
4、devpoll_changes
语法形式:devpoll_changes number
默认值:32
使用devpoll_changes方式,设置可以与内核之间传递事件的数量。
5、devpoll_events
语法形式:devpoll_events number
默认值:32
使用devpoll_events方式,设置可以与内核之间传递事件的数量。
6、kqueue_changes
语法形式:kquue_changes number
默认值:512
使用kequeue_changes方式,设置可以与内核之间传递事件的数量。
7、kqueue_events
语法形式:kquue_events number
默认值:512
使用kequeue_events方式,设置可以与内核之间传递事件的数量。
8、epoll_events
语法形式:epoll_events number
默认值:512
使用epoll_events方式,设置可以与内核之间传递事件的数量。
9、multi_accept
语法形式:multi_accept [on|off]
默认值:off
设置了该选项,当nginx收到新连接的通知,accept()会尝试返回尽量多的连接请求。
10、rtsig_signo
11、rtsig_overflow_events
12、rtsig_overflow_test
13、rtsig_overflow_threshold
这几个指令是使用信号驱动IO方式事件模型的配置项,在linux系统一般使用epoll,这里就不详细解释了。
14、use
语法形式:use [kqueue|rtsig|epoll|/dev/poll|select|poll|eventport]
默认值:
使用事件模型。一般在./configure脚本执行的时候nginx会根据当前操作系统情况选择合适的事件模型,如果你确定你的系统上有几种事件模型,可以使用这个指令更改事件模型。
15、worker_connections
语法形式:worker_connections number
默认值:
前面介绍过,可以计算出max_clients:
max_clients = worker_processes * worker_connections
不过在用作反向代理的时候,max_clients = worker_processes * worker_connections/4,这是因为此时浏览器默认会打开两条到server的连接,nginx又会使用两个文件描述字连接到后端服务。
至此,nginx的核心模块配置(core模块和event模块)就介绍完了,而nginx配置的灵活与强大体现在http模块的配置中,这一部分又可以分成二十多个不同的模块,go on.
相关文章推荐
- nginx源码分析(14)-运维与配置(2)
- nginx源码分析(13)-运维与配置(1)
- nginx源码分析(13)-运维与配置(1)
- [nginx源码分析]配置解析(server作用域)
- Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 二
- Nginx源码分析 - Event事件篇 - Event模块和配置的初始化
- nginx源码分析--配置文件解析
- Nginx源码分析与实践---Nginx的初步配置
- nginx源码分析--配置信息的继承&合并
- nginx源码分析之配置图解
- [nginx源码分析]配置解析(location作用域)
- [nginx源码分析]配置合并
- Nginx源码分析 - 主流程篇 - 解析配置文件
- nginx源码分析--配置结构体在内存中的分布
- Nginx源码分析 - Event事件篇 - Event模块和配置的初始化
- Nginx 源码分析-- 模块module 解析执行 nginx.conf 配置文件流程分析 一
- nginx 源码分析 1 - 配置解析
- [nginx源码分析]配置解析1
- nginx源码分析——配置
- Nginx源码分析—nginx的配置