worker_processes指令用来设置Nginx服务的进程数。为了让多核CPU能够很好地并行处理任务,可以赋值为机器CPU的倍数。当然,这个值并不是越大越好,Nginx进程太多可能增加主进程调度负担,也可能影响系统的IO效率。针对双核CPU,建议设置为2或4。笔者的机器为四核CPU,设置为:
worker_processes 4;
设置好worker_processes指令之后,就很有必要设置worker_cpu_affinity指令
worker_cpu_affinity指令用来为每个进程分配CPU的工作内核,来减少切换cup所带来的性能消耗。worker_cpu_affinity指令的值是由几组二进制值表示的。其中,每一组代表一个进程,每组中的每一位表示该进程使用CPU的情况,1代表使用,0代表不使用。二进制位排列顺序和CPU的顺序是相反的。建议将不同的进程平均分配到不同的CPU运行内核上。
笔者设置Nginx服务的进程数为4,CPU是四核,因此会有四组值,并且每组有四位,所以,此指令的设置为:
worker_cpu_affinity 0001 0010 0100 1000
四组二进制数值分别对应4个进程,第一个进程对应0001,表示使用第一个CPU内核;第二个进程对应0010,表示使用第二个CPU内核,以此类推。
此指令只能在全局块中进行配置。
解读:nginx的一个神秘配置worker_cpu_affinity - 咖啡色的羊驼 - CSDN博客
http://blog.csdn.net/u011957758/article/details/50959823
在服务器端压缩,然后在浏览器端解压
该指令用于开启或者关闭Gzip功能
gzip on | off
默认情况下,该指令设置为off,即不启用Gzip功能。只有将该指令设置为on时,下列各指令设置才有效。
该指令用于设置Gzip压缩文件使用缓存空间的大小。
gzip_buffers number size;
Nginx服务器在对响应输出数据进行Gzip压缩时需向系统申请number*size大小的空间用于存储压缩数据。默认情况下number*size的值为128,其中size的值取系统内存页一页的大小,为4KB或者8KB。
gzip_buffers 32 4k | 16 8K;
该指令用于设定Gzip压缩程度,包括级别1到9。级别1表示压缩程度最低,消耗CPU小;级别9表示压缩程度最高,消耗CPU越大,最费时间。
gzip_comp_level level;
level的默认值为1。
Gzip压缩功能对大数据的压缩效果明显,但是如果压缩很小的数据,可能出现越压缩数据量越大的情况(很多压缩算法都有这样的情况发生),因此应该根据响应页面的大小,选择性的开启或者关闭Gzip功能。该指令设置页面的字节数,当响应页面的大小大于该值时,才启用Gzip功能。
gzip_min_length length;
默认设置为20,设置0时不管响应页面大小如何统统压缩。笔者建议将该值设置为1KB或以上,以防止出现数据越压越大的情况。
gzip_min_length 1024;
Nginx服务器可以根据响应页的MIME类型选择性地开启Gzip压缩功能。该指令用来设置MIME类型,被设置的类型将被压缩。
gzip_types mime-types ...;
mime-type变量的取值默认为text/html,但实际上,在gzip指令设置为on时,Nginx服务器会对所有的text/html类型页面数据进行Gzip压缩。该变量还可以取“*”,表示对所有MIME类型的页面数据进行Gzip压缩。一般情况下我们压缩常规的文件类型时,可以设置为
gzip_types text/plain application/x-javascript text/css text/html application/xml;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css text/html application/xml;
gzip指令可以放在http全局块中也可以放在server块中。