背景
gzip压缩为前端常用的性能优化方法,现在以开发机环境为例开启gzip压缩。
开启方法
gzip on;
gzip_http_version 1.1;
gzip_min_length 1k;
gzip_vary on;
gzip_comp_level 3;
gzip_proxied any;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_buffers 4 8k;
在nginx.conf文件中配置如上代码。
然后重启nginx即可
各个字段介绍:
- gzip on;
开启gzip压缩功能 - gzip_http_version 1.1
压缩版本(默认1.1 前端为squid2.5时使用1.0)用于设置识别HTTP协议版本,默认是1.1,目前大部分浏览器已经支持GZIP压缩,使用默认即可。 - gzip_min_length 1k;
设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,表示不管页面多大都进行压缩,建议设置成大于1K,如果小于1K可能会越压越大 - gzip_vary on;
vary hear支持,该选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用缓存经过Nginx压缩的数据。 - gzip_comp_level 2;
压缩比率,用来指定GZIP压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理最慢,也消耗CPU资源 - gzip_types text/css text/xml application/javascript;
用来指定压缩的类型,“text/html”类型总是会被压缩,这个就是HTTP原理部分讲的媒体类型 - gzip_buffers 4 16k;
压缩缓冲区大小,表示申请4个单位为16K的内存作为压缩结果流缓存,默认是申请与原始是数据大小相同的内存空间来存储gzip压缩结果;
优化效果
开启之前:
开启后的效果:
可以看到,传输文件有明显变小