Nginx三大模块--事件(Event)模块
事件模块可以使用指令来配置网络机制,某些参数可能会直接应用程序性能,下面是事件模块可配置的指令
事件模块可以使用指令来配置网络机制,某些参数可能会直接应用程序性能,下面是事件模块可配置的指令
events block
user nginx nginx;
master_process on;
worker_processes 4;
events {
 worker_connections 1024;
 use epoll;
}
[...]
accept_mutex
Accepted values: on or off
Syntax: accept_mutex on;
Default value: on
开启或者禁用使用互斥锁来打开sockets
互斥锁,是一种用于多线程编程中,防止两条线程同时对同一公共资源(比如全局变量)进行读写的机制
accept_mutex_delay
Syntax: Numeric (time)
Example: accept_mutex_delay 500ms;
Default value: 500 milliseconds
定义worker进程等待多长时间再次获取资源
connections
已改为worker_connections
debug_connection
Syntax: IP address or CIDR block.
Example: debug_connection 172.63.155.21;
Default value: None
为匹配的IP客户端写入详细的日志,这些错误信息将会存储error_log日志文件中,并且需要error_log指令的值debug级别
注意:如果要使用这个特性必须在编译Nginx时加入--debug参数
multi_accept
Syntax: on or off
Example: multi_accept off;
Default value: off
定义Nginx是否一次同意从监听队列所有到来的连接
use
Accepted values: /dev/poll, epoll, eventport, kqueue,rtsig, or select
Example: use kqueue;
Default value: Defined at compile time
选择一个可用的事件的模型(可以在编译时指定),Nginx会自动选择事件的模型
支持下面的事件模型:
- select:只能在Windows下使用,这个事件模型不建议在高负载的系统使用
- poll:Nginx默认首选,但不是在所有系统下都可用
- kqueue:这种方式在FreeBSD 4.1+, OpenBSD2.9+, NetBSD 2.0, 和 MacOS X系统中是最高效的
- epoll: 这种方式是在Linux 2.6+内核中最高效的方式
- rtsig:实时信号,可用在Linux 2.2.19的内核中,但不适用在高流量的系统中
- /dev/poll: Solaris 7 11/99+,HP/UX 11.22+, IRIX 6.5.15+, and Tru64 UNIX 5.1A+操作系统最高效的方式
- eventport: Solaris 10最高效的方式
worker_connections
Syntax: Numeric
Example: worker_connections 1024;
Default value: None
定义每个worker进程连接数量