小编给大家分享一下Nginx如何开启gzip配置,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
Nginx实现资源压缩的原理是通过ngx_http_gzip_module模块拦截请求,并对需要做gzip的类型做gzip压缩,该模块是默认基础的,不需要重新编译,直接开启即可。
基本配置
#,开启gzipgzip ; , #,启用gzip压缩的最小文件,小于设置值的文件将不会压缩gzip_min_length 1 k; , #,gzip 压缩级别,1 - 9,数字越大压缩的越好,也越占用CPU时间,后面会有详细说明gzip_comp_level 1; , #,进行压缩的文件类型.javascript有多种形式。其中的值可以在,mime.types 文件中找到.gzip_types 文本/plain 应用程序/javascript 应用程序/x-javascript 文本/css 应用程序/xml 文本/javascript 应用程序/x-httpd-php 图像/jpeg 图像/gif 图像/png 应用程序/vnd.ms-fontobject 字体/ttf 字体/opentype 字体/x-woff 图像/svg + xml; , #,是否在http 头中添加不同:,接受编码,建议开启gzip_vary ; , 6 #,禁用IE gzipgzip_disable “MSIE \ \ [1 - 6] !”; , #,设置压缩所需要的缓冲区大小gzip_buffers 32, 4 k; , #,设置gzip压缩针对HTTP的协议版本,没做负载的可以不用#,gzip_http_version 1.0; #,开启缓存位置~ *,+ \ \ ^。gif (ico | | jpg | jpeg | png)美元,{ ,,access_log ; expires 才能,,,2 d; } , 的位置~ * ^。+ \ \。(css | js | txt xml | | swf | wav)美元,{ ,,access_log ; expires 才能,,,24小时; } , 的位置~ * ^。+ \ \。(html | htm)美元,{ expires 才能,,,1 h; } , 的位置~ * ^。+ \ \。(测试结束| ttf |传递woff | | svg)美元,{ ,,access_log ; expires 才能;马克思; } , #,#,格式expires 30年代;#,expires 30米;#,expires 2 h; #, expires 30 d;
检测效果
1。nginx的响应头中的内容编码是gzip
2。返回文件大小明显被压缩
压缩说明gzip>语法:,gzip_buffers number 规模;
默认值:
gzip_buffers 32, 4 k | 16, 8 k;
http上下文:,,,,服务器,位置 gzip_comp_level
设置gzip压缩级别,级别越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大
语法:,gzip_comp_level 水平;默认值: gzip_comp_level 1;背景:,,http,,服务器,位置
不是压缩级别越高越好,其实gzip_comp_level 1的压缩能力已经够用了,后面级别越高,压缩的比例其实增长不大,反而很吃处理性能。
另一方面,压缩一定要和静态资源缓存相结合,缓存压缩后的版本,否则每次都压缩高负载下服务器肯定吃不住。
gzip_disable
通过表达式,表明哪些UA头不使用gzip压缩
语法:,gzip_disable regex …; 默认值:,, 背景:,,http,,服务器,locationThis directive appearedinversion 0.6.23。
gzip_min_length
当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩。
语法:,gzip_min_length 长度;默认值: gzip_min_length 20;背景:,,http,,服务器,位置
gzip_http_version
用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项。默认在http/1.0的协议下不开启gzip压缩。
语法:,gzip_http_version 1.0, |, 1.1; 默认值: gzip_http_version 1.1; http上下文:,,,,服务器,位置
在应用服务器前,如果还有一层Nginx的集群作为负载均衡,在这一层上,若果没有开启gzip。
如果我们使用了proxy_pass进行反向代理,那么Nginx和后端的upstreamserver之间默认是用http/1.0协议通信的。
如果我们的缓存服务器也是Nginx,而前端的Nginx没有开启gzip。
同时,我们后端的Nginx上没有设置gzip_http_version为1.0,那么缓存的url将不会进行gzip压缩。
gzip_proxied
Nginx做为反向代理的时候启用:
1. off 作用;关闭所有的代理结果数据压缩 2只;expired 作用;如果头中包含“到期”头信息,启用压缩 3. no-cache 作用;如果头中包含“cache - control: no - cache”头信息,启用压缩 4. no-store 作用;如果头中包含“cache - control:不是商店”头信息,启用压缩 5只private 安康;如果头中包含“cache - control:私人”头信息,启用压缩 6只no_last_modified 安康;启用压缩,如果头中包含“Last_Modified”头信息,启用压缩 7只no_etag 神启用压缩,如果头中包含“ETag头信息,启用压缩 8只;auth 作用;启用压缩,如果头中包含“授权”头信息,启用压缩 9. any 作用;无条件压缩所有结果数据Nginx如何开启gzip配置