zoukankan      html  css  js  c++  java
  • gzip压缩

    https://nginx.org/en/docs/http/ngx_http_gzip_module.html
    https://nginx.org/en/docs/http/ngx_http_gunzip_module.html
    https://nginx.org/en/docs/http/ngx_http_gzip_static_module.html

    原理:

    浏览器---请求----> 声明可以接受 gzip压缩 或 deflate压缩 或compress 或 sdch压缩
    从http协议的角度看--请求头 声明 acceopt-encoding: gzip deflate sdch (是指压缩算法,其中sdch是google倡导的一种压缩方式,目前支持的服务器尚不多)
    服务器-->回应---把内容用gzip方式压缩---->发给浏览器
    浏览<-----解码gzip-----接收gzip压缩内容----

    gzip配置的常用参数

    gzip on|off; #是否开启gzip
    gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?)
    gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源)
    gzip_disable #正则匹配UA 什么样的Uri不进行gzip
    gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在)
    gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议)
    gzip_proxied # 设置请求者代理服务器,该如何缓存内容
    gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css
    gzip_vary on|off # 是否传输gzip压缩标志

    注意:
    图片/mp3这样的二进制文件,不必压缩
    因为压缩率比较小, 比如100->80字节,而且压缩也是耗费CPU资源的.
    比较小的文件不必压缩,

    扩展nginx压缩模块

    http_gzip_static_module 预读gzip功能
    http_gunzip_module 应用支持gunzip的压缩方式

    预读gzip功能是预先在服务器端压缩文件,gzip命令在nginx.conf中location 开启预读压缩:gzip_static on
    gunzip的压缩方式是为了那些不能使用gzip的浏览器解决方案,很少使用

    http_gzip_module提供了对gzip的基本的支持,默认是编译到nginx的发行版本里面的。注意的可以通过gzip_comp_level来制定压缩的比例,压缩的体积越小,对cpu的消耗越大。

    http_gzip_static_module则是针对nginx serve的静态文件,需要编译进去才能有。比如a.html,如果启用了gzip_static on,如果同一目录下还有a.html.gz作为a.html压缩版本存在,那么nginx会以a.html.gz作为a.html的gzip version来serve。这样,可以采用对cpu消耗更大,但是压缩效果更好的算法事先压好.gz文件,而不是让nginx在访问的时候现压缩从而节省cpu。
    另外,两个模块可以同时编译进去。

  • 相关阅读:
    从头到尾测地理解KMP算法【转】
    【Android】使用BaseAdapter实现复杂的ListView【转】
    Git命令速查表【转】
    图解Git命令【转】
    Git-入门教程
    自定义Git【转】
    linux命令大全
    ppt转pdf网址
    【转】设置电脑眼睛保护色(背景色)
    【转】putty基本操作--不错
  • 原文地址:https://www.cnblogs.com/qinsilandiao/p/10904054.html
Copyright © 2011-2022 走看看