nginx配置

一、压缩配置

#全局配置
http {
        gzip on;
        gzip_min_length 1k; 
        gzip_buffers 4 16k;
        gzip_comp_level 2;
        gzip_types text/plain application/x-javascript  text/css application/xml application/javascript text/javascript application/json application/x-httpd-php image/jpeg image/gif image/png;
        gzip_vary off;
        gzip_disable "MSIE [1-6]\.";
}

参数说明

gzip_min_length 1K;
当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩。

gzip_buffers 4 16K;
设置缓冲区数量和大小。比如4 16K表示按照内存页(one memory page)大小以16K为单位(即一个系统中内存页为4K),申请4倍的内存空间。建议此项不设置,使用默认值。

gzip_comp_level 2;
设置gzip压缩级别,数字越低压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大,gzip很消耗cpu的性能,高并发情况下cpu可能达到100%;因此尽量不要设置高级别;

gzip_types .....;
设置需要压缩的类型,注意javascript配置在x-javascript后边,否则可能不生效

gzip_vary off;
增加响应头”Vary: Accept-Encoding”

gzip_disable ....;
通过表达式,表明哪些UA头不使用gzip压缩

gzip_http_version;
用于识别http协议的版本,需要注意的是,如果应用服务器前有一个nginx反向代理,需要前后的nginx均开启gzip,同时如果我们使用了proxy_pass进行反向代理,那么nginx和后端的upstream server之间默认是用HTTP/1.0协议通信的,因此后端的nginx上需要设置gzip_http_version为支持识别1.0