Gzip(GNU-ZIP)是一种压缩技术。经过 Gzip 压缩后页面大小可以变为原来的 30% 甚至更小,用户浏览页面速度会快很多。Gzip 压缩页面需要浏览器和服务器双方都支持——服务器端压缩,传输至浏览器解压并解析。
Nginx 压缩输出有一组 Gzip 指令来配置,相关指令位于http{….}两个大括号之间。LNMP 默认已经开启。
LNMP nginx Gzip 默认配置
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
开启 Gzip 压缩效果挺明显的:测试地址。
或者 SSH 中使用命令检测 Gzip 是否开启,如:
curl -I -H"Accept-Encoding: gzip, deflate" "https://cyhour.com"
返回有 Content-Encoding: gzip
即开启成功。
Gzip 指令解释
gzip on; //该指令用于开启或关闭gzip模块(on/off)
gzip_min_length 1k; //设置允许压缩的页面最小字节数,页面字节数从 header 头 content-length 获取。默认值是0,不管页面多大都压缩。建议设置成大于 1k 字节数,小于 1k 可能会越压越大。
gzip_buffers 4 16k; //设置系统获取几个单位的缓存用于存储 Gzip 压缩结果数据流。4 16k 代表以 16k 为单位,安装原始数据大小以 16k 为单位4倍申请内存。
gzip_http_version 1.1; //识别http的协议版本(1.0/1.1)
gzip_comp_level 2; //gzip压缩比,1压缩比最小处理速度最快,9压缩比最大但处理速度最慢(传输快但比较消耗cpu)
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; //匹配 mime 类型进行压缩,无论是否指定,"text/html" 类型总是会被压缩。
gzip_vary on; //和 http 头有关系,加个 vary 头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端 HTTP 头来判断,是否需要压缩。
Comments:0