Nginx Gzip介绍
Nginx中默认集成 ngx_http_gzip_module 模块,该模块实现资源的压缩,压缩类型为gzip,可通过开启该模块来提高页面加载速度。服务端对指定文件进行压缩传输,客户端进行解压渲染使用。归结最后主要目的就是牺牲CPU计算来减少带宽传输。
Gzip常用参数介绍
1 gzip on | off; # 是否开启gzip压缩
2 gzip_buffers 4 16k; # 缓冲(例子为:以16k为单位,按照原始数据大小以16k为单位的4倍申请内存)
3 gzip_comp_level [1-9]; # 压缩级别,级别越高,压缩比越大,越消耗CPU资源,根据服务器CPU情况而定。个人blog,1即可
4 gzip_disable "MSIE [1-6]\."; # 指定不进行gzip压缩的uri(支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持))
5 gzip_min_length 200k; # 压缩文件长度超过200k的文件,单位为字节
6 gzip_http_version 1.1; # 指定进行压缩的最小http协议版本(早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略)
7 gzip_proxied # 做为反向代理的时候启用
# 参数为: off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any
# off – 关闭所有的代理结果数据压缩
# expired – 如果header中包含"Expires"头信息,启用压缩
# no-cache – 如果header中包含"Cache-Control:no-cache"头信息,启用压缩
# no-store – 如果header中包含"Cache-Control:no-store"头信息,启用压缩
# private – 如果header中包含"Cache-Control:private"头信息,启用压缩
# no_last_modified – 如果header中包含"Last_Modified"头信息。启用压缩
# no_etag – 如果header中包含"ETag"头信息,启用压缩
# auth – 如果header中包含"Authorization"头信息,启用压缩
# any – 无条件压缩所有结果数据
# 注:**此处详细介绍因本网站由Nginx+Ghost构成,所以涉及了反向代理,如果排查header觉得玛法可以直接设置 gzip_proxied any; 只有设置该参数反向代理页面才可以压缩,否则不生效**
8 gzip_types # 指定要压缩的文件的类型
# 参数:application/javascript text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
# 说明:一般情况下,不建议对图片、mp3等二进制文件配置压缩,因为二进制文件的压缩率比较小,但耗费的cpu资源却很高
9 gzip_vary on | off # #是否添加"Vary: Accept-Encoding"响应头
Gzip配置举例
gzip可配置到 http {gzip配置}中,也可以配置到location /{gzip配置}中
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 1;
gzip_types application/javascript text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;
gzip_proxied any;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
查看设置是否成功
谷歌浏览器
进入检查,点击network,然后在Name位置右键,选择Response Headers -> Content-Encoding 。页面会展示 Content-Encoding详细信息如有gzip则为gzip压缩传输
站长工具
http://tool.chinaz.com/Gzips
输入对应的域名,就会展示出网站是否压缩,该压缩效果依据上面 举例配置进行设置。
评论区