nginx常用优化项

worker_processes 4;

nginx进程数,一般按cpu的数目来指定,通常为它的倍数。

worker_cpu_affinity 00000001 00000010 00000100 00001000;

为每个进程分配CPU。上面将4个进程分配到4个CPU,也可以让多个进程分配给CPU,或者将一个进程分配到多个CPU 

worker_rlimit_nofile 102400;

这个指令指当一个nginx进程打开的组多文件描述符数目,理论值是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不那么均匀,所以最好与ulimit -n的值保持一致。

use epoll;

使用epoll的I/O模型,epoll是Linux内核中的一种可扩展IO事件处理机制。

worker_connections 102400;

每个进程允许的最大连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。

keepalive_timeout 60;

keepalive的超时时长。

client_header_buffer_size 4K;

客户端请求头部的缓冲区大小,这个可以根据系统分页大小来设置,一般一个请求头的大小不会超过1K,不过由于一般系统分页都要大于1K,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE 取得。

open_file_cache max=102400 inactive=20s;

这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

open_file_cache_valid 30s;

这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1;

open_file_cache 指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive 时间内一次没被使用,它将被移除。



留言