设为首页收藏本站
开启辅助访问
切换到宽版

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
查看: 4341|回复: 0
打印 上一主题 下一主题

apache2配置gzip压缩

[复制链接]

我玩的应用:

跳转到指定楼层
楼主
发表于 2012-12-15 21:46:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本文介绍如何启用apache的gzip功能,啥叫gzip请查询相关wiki或者百度百科
针对Apache2.0及之后的版本,Apache提供支持, 不过不叫gzip,而叫mod_deflate。
在使用gzip压缩之前请确实是否已经启用apache的deflate和 headers两个模块。操作办法:
修改
#LoadModule headers_module modules/mod_headers.so#LoadModule deflate_module modules/mod_deflate.so为
LoadModule headers_module modules/mod_headers.soLoadModule deflate_module modules/mod_deflate.so及去掉前面的#
在httpd.conf中添加下面一段配置:
  1. <IfModule mod_deflate.c>
  2. <Location />
  3. #Insert filter
  4. SetOutputFilter DEFLATE
  5. # Netscape 4.x has some problems…
  6. BrowserMatch ^Mozilla/4 gzip-only-text/html
  7. # Netscape 4.06-4.08 have some more problems
  8. BrowserMatch ^Mozilla/4\.0[678] no-gzip
  9. # MSIE masquerades as Netscape, but it is fine
  10. # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  11. # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.59
  12. # the above regex won’t work. You can use the following
  13. # workaround to get the desired effect:
  14. # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html force-gzip
  15. BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

  16. # Don’t compress images and other
  17. #SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
  18. #SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
  19. #SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary

  20. AddOutputFilterByType DEFLATE text/html text/css image/gif image/jpeg image/png  application/x-javascript
  21. # Make sure proxies don’t deliver the wrong content
  22. Header append Vary User-Agent env=!dont-vary

  23. #DeflateFilterNote ratio ratio_info
  24. #LogFormat '"%v %h %l %u %t “%r" %>s %b "%{Referer}i" "%{User-Agent}i"" (%{ratio}n)' deflate
  25. #CustomLog logs/deflate_log deflate
  26. </Location>
  27. </IfModule>
复制代码
这样整个配置就算完成,重启apache就可以看到效果,够简单吧!
关于apache 的mod_deflate的更多配置参数请参考apache的配置手册:
http://www.phpchina.com/resource/manual/apache/mod/mod_deflate.html
笔者以firebug为测试工具在启用gzip前后以jquery.-1.3.2-min.js为测试对象得到下面的测试结果:
启用前:

启用后:

很明显的看到,jquery-1.3.2.min.js已经从55.9k压缩为19.3k,这个压缩比例应该说是比较给力的。而且我们知道jq-min的代码本身已经做了压缩,所以如果是我们平时写的一些html代码的话,整个压缩程度更高,在笔者测试过程中,一般对html可以压缩为原大小的30%甚至更小。这里就不贴图了。
下面一段文字来至互联网:
gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分;
deflate是一种压缩算法,是huffman编码的一种加强。
deflate与gzip解压的代码几乎相同,可以合成一块代码。
区别仅有:
deflate使用inflateInit(),而gzip使用inflateInit2()进行初始化,比  inflateInit()多一个参数: -MAX_WBITS,表示处理raw deflate数据。因为gzip数据中的zlib压缩数据块没有zlib  header的两个字节。使用inflateInit2时要求zlib库忽略zlib  header。在zlib手册中要求windowBits为8..15,但是实际上其它范围的数据有特殊作用,见zlib.h中的注释,如负数表示raw  deflate。
Apache的deflate变种可能也没有zlib header,需要添加假头后处理。即MS的错误deflate (raw  deflate).zlib头第1字节一般是0×78,  第2字节与第一字节合起来的双字节应能被31整除,详见rfc1950。例如Firefox的zlib假头为0×7801,python  zlib.compress()结果头部为0x789c。
deflate 是最基础的算法,gzip 在 deflate 的 raw data  前增加了 10 个字节的 gzheader,尾部添加了 8 个字节的校验字节(可选 crc32 和 adler32)  和长度标识字节。

from:http://go.cxweb.com.cn/0tlcv

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2024-9-22 07:11 , Processed in 0.090016 second(s), 24 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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