作者:徐永久 我們知道 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 等的請求。