用Apache2的mod_deflate模块来压缩页面

  mod_deflate在Web服务器层进行压缩控制,因此不需要通过修改程序代码就可以达到减小传输文件大小的功能。但是对于特别大的文件,在压缩的时候需要花费一定的时间,因此下载的人会在一段时间内无法得到响应。

查看了Apache的配置:

Apache配置代码:

<ifmodule mod_deflate.so>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate_log.log deflate
</ifmodule>

修改为:

Apache配置代码:

<IfModule mod_deflate.so>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE image/svg+xml
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate_log.log deflate
</ifmodule>

Apache2中的实时压缩解压的模块编译在mod_deflate模块中,替换了原来的mod_gzip模块。

编译apache的时候 –enable-deflate 这个参数是默认开启的,编译完会有mod_deflate模块。

配置站点:

如果我们想使一个文件传输的时候进行加密,我们在站点配置文件里增加这样的配置

<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</Location>
这样,/var/www/htdocs目录下的所有mime类型为text/html的文件就可以启用

未压缩的http头:

Date Fri, 21 Oct 2011 05:43:36 GMT
Server Apache/2.2.16 (Unix) DAV/2
Last-Modified Fri, 21 Oct 2011 05:42:23 GMT
Etag "48d46c6-12853-4afc8898ecdc0"
Accept-Ranges bytes
Content-Length 75859
Content-Type text/html
Vary Accept-Encoding,User-Agent

压缩后的http头:

Date Fri, 21 Oct 2011 05:43:36 GMT
Server Apache/2.2.16 (Unix) DAV/2
Last-Modified Fri, 21 Oct 2011 05:42:23 GMT
Etag "48d46c6-12853-4afc8898ecdc0"
Accept-Ranges bytes
Vary Accept-Encoding,User-Agent
Content-Encoding gzip
Content-Length 18323
X-UA-Compatible IE=EmulateIE7
Content-Type text/html

原来length为75859,压缩后为18323,效果还是很明显的。

不过对于length很小的文件,是不进行压缩的。

本文出自 “玩linux…做运维…集群” 博客,请务必保留此出处http://scottlinn.blog.51cto.com/829656/694046

更多相关文章
一周排行
  • 一部server2008,远程RDP登录桌面没有任何显示,可能进程哪里有问题了,需要重启.用如下方式: 在本机用管理员打开CMD 输入命令shutdown /i 在弹出的窗口处点add输入计算机名,然后点ok,远程服 ...
  • Technorati 标记: Modifier,java,toString 第一次写这种探讨类的博客,有很多不懂得地方,也有很多写不好的地方,如果哪里写得不好,恳请你指出:也希望可以留下你的建议,让我努力奋斗一番,看 ...
  • 1.在用Secure Store Service获取用户信息之前需要配置SSS. 2.以下代码是获取用户信息: using (SPSite site = new SPSite(webUrl)) { SecureSto ...
  • apt-get update #更新源 apt-get -u install x-window-system-core #安装X-Window的系统核心文件,在配置时请按照提示进行.如果X窗口启动不成功,可以运行dp
  • Linux下地址转换函数  inet_pton ==> Ox inet_ntop ==> xxx.xxx.xxx   #include <sys/types.h> #include <s ...
  • 子页面AreaSelect.cshtml页面的Controller代码: public ActionResult AreaSelect() { return PartialView(); } 父页面前台代码: < ...
  • 


    		    iPad 上能播放區域網路高清片源影音播放利器XBMC使用體會
    虽然在iPad上有很多款优秀的高清播放器,但大很多是通过iTune将视频同步到iOS设备,
  •       原文  http://blog.segmentfault.com/jianjian_532633/1190654839 添加到推刊   在介绍移动端特有 meta 标签之前,先简单说一下 HTML met
  • 像素PX厘米转换:PX:CM=28. 宽度:827/28.35=29.171 高度:1843/28.35=65
  • Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *next; }   P