我们知道 mod_gzip 是用来在服务器端把客户请求的内容压缩后发送给客户端的一个 Apache 模块。本站的 Zope 通过 FastCGI 来实现和 Apache 的结合,Apache 是解析 HTML 页面的服务程序。安装好 mod_gzip 后就即能压缩普通静态页面也能压缩 Zope 文档。
一、安装
http://www.hyperspacecommunications.com/products/mod_gzip.html
页面上有 mod_gzip 的二进制码版本和源码下载。如果你使用前者的话,直接把文件拷贝到 Apache Home 的 libexec 目录下就可以了。下载 mod_gzip.c 后,如果你的 Apache 用 DSO 模式安装的话,用下面简单的命令就可以安装了:
# /www/bin/apxs -i -a -c mod_gzip.c
二、配置
安装完毕以后把下列配置加入 httpd.conf :
# mod_gzip 配置
LoadModule gzip_module libexec/mod_gzip.so
AddModule mod_gzip.c
mod_gzip_on Yes
mod_gzip_minimum_file_size 1002
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 60000
mod_gzip_item_include mime ""application/x-httpd-php""
mod_gzip_item_include mime ""text/*""
# 压缩 Zope 的内容:
mod_gzip_item_include file ""[^.]*$""
mod_gzip_item_include mime ""httpd/unix-directory""
mod_gzip_dechunk Yes
mod_gzip_temp_dir ""/tmp""
mod_gzip_keep_workfiles No
mod_gzip_item_include file "".php$""
mod_gzip_item_include file "".txt$""
mod_gzip_item_include file "".html$""
mod_gzip_item_exclude file "".CSS$""
mod_gzip_item_exclude file "".js$""
并添加下面的行:
LogFormat ""%h %l %u %t ""%r"" %>s %b ""%{Referer}i"" ""%{User-Agent}i"" mod_gzip: %{mod_gzip_compression_ratio}npct."" mod_gzip
把对应虚拟主机配置中的日志文件参数修改为 mod_gzip
三、压缩效果
这样,我们得到类似以下的日志文件:
61.169.41.13 - - [02/Mar/2002:01:24:29 -0500] ""GET /pipermAIl/freelamp/2002-March/000026.html HTTP/1.1"" 200 72848 ""http://www.freelamp.com/pipermail/freelamp/2002-March/subject.html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 54pct.
61.169.41.13 - - [02/Mar/2002:01:24:52 -0500] ""GET /new/publish/1003233602/index_html HTTP/1.1"" 200 4304 ""http://www.freelamp.com/new/publish/search?subject=Zope&op=articles"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 65pct.
61.169.41.13 - - [02/Mar/2002:01:24:53 -0500] ""GET /new/publish/global_css HTTP/1.1"" 200 629 ""http://www.freelamp.com/new/publish/1003233602/index_html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 73pct.
61.169.41.13 - - [02/Mar/2002:01:24:54 -0500] ""GET /new/publish/Images/sitetitle_img HTTP/1.1"" 304 0 ""http://www.freelamp.com/new/publish/1003233602/index_html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 0pct.
61.169.41.13 - - [02/Mar/2002:01:26:21 -0500] ""GET /new/publish/index_html HTTP/1.1"" 200 7317 ""http://www.freelamp.com/new/publish/1003233602/index_html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 80pct.
61.169.41.13 - - [02/Mar/2002:01:26:22 -0500] ""GET /new/publish/global_css HTTP/1.1"" 200 629 ""http://www.freelamp.com/new/publish/index_html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 73pct.
61.169.41.13 - - [02/Mar/2002:01:26:24 -0500] ""GET /new/publish/TopicImages/Tutorial HTTP/1.1"" 304 0 ""http://www.freelamp.com/new/publish/index_html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 0pct.
61.169.41.13 - - [02/Mar/2002:01:26:24 -0500] ""GET /new/publish/LinkImages/jsp001_img HTTP/1.1"" 304 0 ""http://www.freelamp.com/new/publish/index_html"" ""Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; Q312461; NetCaptor 6.5.0)"" mod_gzip: 0pct.
我们看到 mod_gzip 已经对 .html 和那些没有点的文件作了压缩,压缩率达到了 70-80%。但是,mod_gzip 对图片文件不作压缩。
四、总结
结合,mod_gzip 和缓冲工具等,我们完全可以使一台配置较低的 PC 有足够的能力处理各种 HTML/CGI 等的请求。