欢迎访问 FreeeLAMP.com Tutorial  Tips  Apache  Opinion  PHP 
 搜索
 首页


全文搜索
RDF新闻订阅

采用 mod_gzip 加速 Zope 和 Apache
Tutorial徐永久 发表于 2002年03月02日 15:03。  

我们知道 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 等的请求。



<  |  >

 

相关连接
  • 有关Tutorial 的文章
  • 作者徐永久的所有文章
  • 联系作者
    Google
    Web freelamp.com

  • 相关文档
    by 徐永久 on 2002年03月02日 15:14
    为 LAMP 加速
    PHP的优化,缓冲,压缩
    PHP 缓冲的免费实现方法
    为 加速 PHP 程序而努力
    应用缓冲服务器为网站提速
    Zend Accelerator 为 Apache/PHP 提速


    Re: 采用 mod_gzip 加速 Zope 和 Apache
    by amtd on 2002年03月03日 14:48
    有效果,可以明显感觉到。好!

    Re: 采用 mod_gzip 加速 Zope 和 Apache
    by Leagle on 2002年03月06日 11:04
    装上了,只是临时没时间测试速度。不过已经看到 log 里的54pct :-)

    oh,我想这句
    "把对应虚拟主机配置中的日志文件参数修改为mod_gzip"
    应该对应 httpd.conf 里这一行吧。
    CustomLog /var/log/httpd/mod_gzip mod_zip

    另外,我是在mod_perl redhat apache1.3.20 下测试的,for mod_perl,cgi 文件里还要加上这一行
    # print "HTTP/1.1 200 OK\r\n\r\n";
    ,否则由cgi 生成的 html 不会 output 出来。

    附:mod_zip 的documentation: http://www.ehyperspace.com/apache/mod_gzip/

    • Re: 采用 mod_gzip 加速 Zope 和 Apache
      Leagle 发表于 2002年03月07日 12:00
      whew....there are a lot about HTTP header.

      不好意思需要补充和改正一下,在mod_perl 里,在httpd.conf 加上 # PerlSendHeader On
      就可以省略 # print "HTTP/1.1 200 OK\r\n\r\n";
      PerlSendHeader On 是打开模拟 mod_cgi 里的 header 处理。更多的看 mod_perl guide吧

    • Re: 采用 mod_gzip 加速 Zope 和 Apache
      adex 发表于 2002年05月19日 15:35
      http://www.ehyperspace.com/apache/mod_gzip/
      没有内容
    Re: 采用 mod_gzip 加速 Zope 和 Apache
    by mysql on 2003年03月08日 01:47
    可是我安装时失败了。
    我的APACHE是2。0以上的版本,我用DSO装的PHP4.3,
    我下载了mod_gzip1.3.19的二进制和源代码,然后按所说的安装后,启动和关闭APACHE服务器时出现如下错误:
    Syntax error on line 1082 of /usr/local/apache/conf/httpd.conf:
    Cannot load /usr/local/apache/modules/mod_gzip.so into server: /usr/local/apache
    /modules/mod_gzip.so: undefined symbol: top_module
    请问我应该如何办?谢谢。

    mod_gzip-1.3.26.1a 的安装办法有改变
    by 徐永久 on 2003年07月12日 22:06

    老办法:
    /opt/apache/bin/apxs -i -a -c mod_gzip.c
    报错:

    ld.so.1: /opt/apache/bin/httpd: fatal:
    > relocation error: file /opt/apache/libexec/mod
    > _gzip.so: symbol gzp_main: referenced symbol not found

    新办法:
    make APXS=/opt/apache/bin/apxs
    make install APXS=/opt/apache/bin/apxs
    /opt/apache/bin/apachectl restart

    就这么简单!




    禅道 须在生活中修,在日常言语、形式里面契合、印证
    自我的觉醒却是光阴偷不走,人拿不走的。
    Back to Top| About 我家小子 版权所无 2001,2007 FreeLAMP.com