好处:
页面另存为大小比浏览器传输大小大很多。好处是加快传输、节省带宽。
原理:
浏览器 -> 请求 -> 声明可以接受的压缩方式【http 协议请求头有个 acceopt-encoding 是指支持的压缩算法】
服务器 -> 回应 -> 把内容 gzip 方式压缩 -> 发送给浏览器 -> 解码 gzip -> 接受 gzip 压缩内容。
配置方式【写在 server 里面即可。】
server{
listen 80;
server_name localhost;
gzip on;
gzip_buffers 32 4k;
gzip_comp_level 6;
gzip_min_length 200;
gzip_type text/css text/xml application/x-javascript;
}
gzip配置的常用参数:
gzip on|off; #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,根据网站实际页面大小设置)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如 txt,xml,html ,css
gzip_vary on|off # 是否传输gzip压缩标志
gzip on|off; #是否开启gzip
gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
gzip_disable #正则匹配UA 什么样的Uri不进行gzip
gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,根据网站实际页面大小设置)
gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
gzip_proxied # 设置请求者代理服务器,该如何缓存内容
gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如 txt,xml,html ,css
gzip_vary on|off # 是否传输gzip压缩标志
压缩类型书写的参考格式在:/usr/local/nginx/conf/mime.types 文件里。
注意:
图片/MP3 这样的二进制文件,不必压缩
因为压缩率比较小,比如 100 -> 80 字节,而且压缩也是消耗 CPU 资源的。
html 不用声明压缩,默认会压缩。