设为首页 收藏本站
查看: 780|回复: 0

[经验分享] Nginx压缩输出配置

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-4-29 18:20:13 | 显示全部楼层 |阅读模式
随着网站内容不断增加,我们的网站上的内容和功能也变得丰富多彩,这时就会有一个问题出现----我们的网站加载会明显变慢,这对于网站的访客来说可不是一件愉快的事,那么我们该如何优化网站,加快网站的访问速度呢?减少网站的文件内容是不可能了,但我们可以用一种“魔法”把这些文件变小,下面我们便来认识一下这个奇妙的缩小术-----gzip。   gzip(GNU-ZIP)是一种压缩技术,经过它的压缩,页面大小会缩小到一种可观的比例,它的原理就是在服务器端进行压缩,当压缩后的数据包到达用户端的浏览器时,会进行解压,还原出原来的内容,压缩过程,用户在访问网站时并不会感觉到。所以gzip的压缩需要浏览器和服务器双方面的支持。不过不需要我们担心,因为IE、火狐、Opera、谷歌等绝大多数浏览器都支持解析gzip过的页面。
   Nginx的压缩输出由一组gzip压缩指令来实现。gzip压缩输出的相关指令位于http{......}两个大括号之间:
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
   指令含义:
  • gzip指令:
    语法:gzip on|off
    默认值:gzip off
    指令用于开启或关闭gzip模块。
  • gzip_buffers指令:
    语法:gzip_buffers number size
    默认值:gzip_buffer 4 4k/8k
    设置系统获取几个单位的缓存用户存储gzip的压缩结果数据流。例如4 4k代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。4 8k代表以8k为单位,按照原始数据以8k为单位的4倍申请内存。
    如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。
  • gzip_comp_level指令
    语法:gzip_comp_level [1-9]
    默认值:gzip_comp_level 1
    gzip压缩比,1:压缩比最小,处理速度最快,9:压缩比最大但处理速度最慢(传输快但更消耗CPU)。一般设置为3即可。
  • gzip_min_length指令
    语法:gzip_min_length length
    默认值:gzip+min_length 0
    设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中进行获取。默认值是0,不管页面多大都压缩。建议设置成大于1k的字节数,小于1k的可能越压越大。即:gzip_min_length 1024。
  • gzip_http_version指令
    语法:gzip_http_version 1.0|1.1
    默认值:gzip_http_version 1.1
    识别http的协议版本。由于早期的一些浏览器或http客户端,肯能不支持gzip自解压,用户会看到乱码,所以做一些判断还是有必要的。
  • gzip_proxied指令
    语法:gzip_proxied[off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any…]
    默认值:gzip_proxied off
    Nginx作为反向代理的时候使用,开启或关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含"Via"的header头。
    off——关闭所有的代理结果数据的压缩。
    experied——启用压缩,如果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——无条件启用压缩。
  • gzip_types指令
    语法:gzip_types mime-type[mime-type…]
    默认值:gzip_types text/html
    匹配mime类型进行压缩,(无论是否指定)“text/html”类型总是会被压缩的。
    注意:如果作为http server来使用,祝配置文件中要包含文件类型配置文件
    http
    {
      include  conf/mime.types;
      ……
    }
    如果你希望压缩常规的文件类型,可以把代码写成这样:
    http
    {
      include conf/mime.types;
      gzip on;
      gzip_mim_length 1000;
      gzip_buffers  4 8k;
      gzip_http_version 1.1;
      gzip_types  text/plain application/x-javascript text/css text/html application/xml;
      ……
    }
  • gzip_vary on指令
    和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-210554-1-1.html 上篇帖子: Nginx设置浏览器本地缓存 下篇帖子: Nginx+Lua+OpenResty安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表