nginx指令中的优化(配置文件)
worker_processes 8;
nginx进程的数量建议根据CPU的数量来指定,一般是它的倍数。
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
给每个进程分配cpu。在上面的例子中,8个进程被分配给8个CPU。当然,您可以编写多个进程,或者将一个进程分配给多个CPU。
worker_rlimit_nofile 102400;
这个指令指的是nginx进程打开的文件描述符的最大数量。理论值应该是打开文件的最大数量(ulimit -n)除以nginx进程的数量,但是nginx分配请求并不是那么统一。
所以最好和ulimit -n n的值保持一致。
use epoll;
使用epoll的I/O模型,不言而喻。
worker_connections 102400;
每个进程允许的最大连接数。理论上,每个nginx服务器的最大连接数是worker _ processes * worker _ connections。
keepalive_timeout 60;
保持活动超时。
client_header_buffer_size 4k;
客户端请求头的缓冲区大小可以根据您的系统分页大小来设置。一般一个请求的头大小不会超过1k,但是由于一般系统分页都大于1k,所以这里设置为分页大小。
页面大小可以通过命令getconf PAGESIZE获得。
open_file_cache max=102400 inactive=20s;
这将指定打开文件的缓存,默认情况下不启用。max指定缓存的数量,建议与打开文件的数量保持一致。非活动是指在文件未被请求后,需要多长时间删除缓存。
open_file_cache_valid 30s;
这是指检查缓存的有效信息的频率。
open_file_cache_min_uses 1;
在open_file_cache指令的非活动参数time中,文件被使用的最小次数。如果超过这个数字,文件描述符总是在缓存中打开。例如,如果文件在非活动时间内没有使用过一次,
它将被删除。