Nginx配置晋级之路(四)---events模块
本⽂介绍events模块。如果对你有⽤请加关注。
#全局配置
events {
accept_mutex on; #设置⽹路连接序列化,防⽌惊现象发⽣,默认为on
multi_accept on; #设置⼀个进程是否同时接受多个⽹络连接,默认为off
#use epoll; #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
worker_connections 1024; # 最⼤连接数
client_header_buffer_size 4k;
open_file_cache max=2000 inactive=60s;
open_file_cache_valid 60s;
open_file_cache_min_uses 1
}
(1)accept_mutex on;
惊现象:⼀个⽹路连接到来,多个睡眠的进程被同事叫醒,但只有⼀个进程能获得链接,这样会影响系统性能。设置⽹路连接序列化,防⽌惊现象发⽣,默认为on
(2)multi_accept on;
设置是否允许同时接受多个⽹络连接:
只能在events模块设置,Nginx服务器的每个⼯作进程可以同时接受多个新的⽹络连接,但是需要在配置⽂件中配置,此指令默认为关闭,即默认为⼀个⼯作进程只能⼀次接受⼀个新的⽹络连接,打开后⼏个同时接受多个。
(3)use epoll;
#使⽤epoll的I/O 模型(值得注意的是如果你不知道Nginx该使⽤哪种轮询⽅法的话,它会选择⼀个最适合你操作系统的)
补充说明:与apache相类,nginx针对不同的操作系统,有不同的事件模型
A)标准事件模型
nginx 配置文件Select、poll属于标准事件模型,如果当前系统不存在更有效的⽅法,nginx会选择select或poll
B)⾼效事件模型
Kqueue:使⽤于FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 和 MacOS X.使⽤双处理器的MacOS X系统使⽤kqueue可能会造成内核崩溃。
Epoll:使⽤于Linux内核2.6版本及以后的系统。
/dev/poll:使⽤于Solaris 7 11/99+, HP/UX 11.22+ (eventport), IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+。
Eventport:使⽤于Solaris 10. 为了防⽌出现内核崩溃的问题, 有必要安装安全补丁
查看linux版本号可以使⽤ cat /proc/version命令
cat /proc/version
Linux version 2.6.32-504.23.4.el6.x86_64 (mockbuild@c6b9.s.org)
(gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) )
#1 SMP Tue Jun 9 20:57:37 UTC 2015
(4)worker_connections 2000;
#⼯作进程的最⼤连接数量 理论上每台nginx服务器的最⼤连接数为worker_processes*worker_connections worker_processes为我们再main中开启的进程数
(5)keepalive_timeout 60;
#keepalive超时时间。 这⾥指的是http层⾯的keep-alive 并⾮tcp的keepalive 。
(6)client_header_buffer_size 4k;
客户端请求头部的缓冲区⼤⼩,这个可以根据你的系统分页⼤⼩来设置,⼀般⼀个请求头的⼤⼩不会超过1k,不过由于⼀般系统分页都要⼤于1k,所以这⾥设置为系统分页⼤⼩。查看系统分页可以使⽤ getconf PAGESIZE命令
getconf PAGESIZE
输⼊如下:
1. [xxxx nginx]# getconf PAGESIZE
2. 4096
(7)open_file_cache max=2000 inactive=60s;
为打开⽂件指定缓存,默认是没有启⽤的,max指定缓存最⼤数量,建议和打开⽂件数⼀致,inactive是指经过多长时间⽂件没被请求后删除缓存 打开⽂件最⼤数量为我们再main配置的worker_rlimit_nofile参数
(8)open_file_cache_valid 60s;
这个是指多长时间检查⼀次缓存的有效信息。如果有⼀个⽂件在inactive时间内⼀次没被使⽤,它将被移除
(9)open_file_cache_min_uses 1;
open_file_cache指令中的inactive参数时间内⽂件的最少使⽤次数,如果超过这个数字,⽂件描述符⼀直是在缓存中打开的,如果有⼀个⽂件在inactive时间内⼀次没被使⽤,它将被移除。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论