nginx指令中的优化(配置文件)
工作者_进程8;
nginx进程的数量建议根据CPU的数量来指定,通常是它的倍数。
worker _ CPU _ affinity 000000001 00000010 0000001000 0001000100000 001000000 010000000 10000000 10000000;
给每个进程分配cpu。在上面的例子中,8个进程被分配给8个CPU。当然,您可以编写多个进程,或者将一个进程分配给多个CPU。
worker _ rlimit _ nofile 102400
这个指令指的是nginx进程打开的文件描述符的最大数量。理论值应该是打开文件的最大数量(ulimit -n)除以nginx进程的数量。但是nginx的分配请求没有那么统一,所以最好和ulimit-n保持相同的值。
使用epoll
使用的是epoll的I/O模型,不言而喻。
工人_连接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 _ use 1;
在open_file_cache指令的非活动参数time内,文件被使用的最小次数。如果超过这个数字,文件描述符总是在缓存中打开。例如,如果一个文件在非活动时间内没有使用过一次,它将被删除。