- worker_processes 8;
nginx进程数,建议按照cpu数目来指定,一般为它的倍数(如:2个4核的cpu计为8)
- worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
为每个进程分配cpu,将上例8个进程分配到8个cpu
- worker_rlimit_nofile 65535;
nginx进程打开的最多文件描述符数目,最好与ulimit -n 的值保持一致
- use epoll;
使用epoll的I/O模型
(
补充说明:
与apache相类,nginx针对不同的操作系统,有不同的事件模型
A)标准事件模型
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. 为了防止出现内核崩溃的问题, 有必要安装安全补丁。
)
worker_connections 65535;
每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为:
worker_processes*worker_connectionskeepalived_timeout 60;
keepalived超时时间client_neader_buffer_size 4k;
客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置
分页大小可以用命令getconf PAGESIZE取得
(也有client_header_buffer_size超过4k的情况,但是该值必须为“系统分页大小”的整倍数)open_file_cache max=65535 inactive=60s
这个将为打开文件指定缓存,默认是关闭的
max指定缓存数量,建议和打开文件数一致
inactive是指多长时间文件没有被请求后删除缓存open_file_cache_valid 80s
这个是指多长时间检查一次缓存的有效信息open_file_cache_min_uses 1;
open_file_cache 指令中的inactive 参数时间内文件的最少使用次数
如果超过这个数字,文件描述符一直是在缓存中打开的
如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。