Nginx服务器中的gzip配置参数详解及其注意点
2022-05-31Linux
对于多数以文本为主的站点来说,文本自身内容占流量的绝大部分。虽然单个文本体积并不算大,但是如果数量众多的话,流量还是相当可观。启用gzip以后,可以大幅度减少所需的流量。
gzip官方文档说明:
站长工具进行测试:
对于多数以文本为主的站点来说,文本自身内容占流量的绝大部分。虽然单个文本体积并不算大,但是如果数量众多的话,流量还是相当可观。启用gzip以后,可以大幅度减少所需的流量。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会以“.gz”扩展名。Nginx中的gzip模块是内置的,当我们需要使用gzip时,只需要在/usr/local/nginx/nginx.conf中添加一下即可,现在99.99%的浏览器基本上都支持gzip解压了
gzip是一种压缩技术,经过gzip压缩后的网站页面大小可以变成原来的30%或者更小。所以用户浏览经过gzip压缩的页面时候速度也会更快,gzip的压缩页面需要服务端于浏览器同时支持,服务端压缩,浏览器进行解压并解析,现在99.99%浏览器都已经支持解析gzip过的页面,gzip使用环境:http,server,location,if(x),一般我把它放置在nginx.conf的http{…}之间,这样的好处是整个服务器上的所有站点都可以使用到了gzip
一、开启gzip有什么好处?
gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度,节省服务器的带宽。
二、配置指令详细讲解
gzip on; # 开启gzip,off关闭 gzip_min_length 1k; # 默认值: 0 ,不管页面多大都压缩 # 设置允许压缩的页面最小字节(从header头的Content-Length中获取)建议大于1k,不到1K的文件不压缩 gzip_buffers 4 16k; # 以16k为单位,按照原始数据大小以16k为单位的4倍申请内存 gzip_http_version 1.1; # 可选项,现在默认都为1.1,识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码 gzip_comp_level 6; # 等级 1-9 最小的压缩最快,但是等级越高越消耗CPU,建议值为4-6 gzip_types text/plain application/x-javascript text/css application/xml; # 匹配压缩类型,可以通过 more /usr/local/nginx/conf/mime.types 查看gzip支持哪些类型 gzip_vary on; # 启用应答头"Vary: Accept-Encoding",这个和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩 gzip_proxied off; # nginx做为反向代理时启用, # 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_modefied(启用压缩,header头中不包含"Last-Modified"), # no_etag(启用压缩,如果header头中不包含"Etag"头信息), # auth(启用压缩,如果header头中包含"Authorization"头信息) gzip_disable "MSIE [1-6]."; # (禁用IE6以下浏览器的gzip压缩)指定哪些不需要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库
三、F12打开浏览器控制台
当Response Headers出现在Conten_Encoding:gzip时说明已开启了压缩
很赞哦! ()