Apache 的 mod_gzip 号称互联网内容加速模块,可以将网络传输速度压缩到未压缩时的1/4.
一、说明:什么是Apache mod_gzip?
Apache 的 mod_gzip 号称互联网内容加速模块,可以将网络传输速度压缩到未压缩时的1/4。
在mod_gzip出现之前,是怎么状况?
我们知道,HTTP 1.1 已经支持 content encoding,就是可以将Html的内容压缩传输。而在服务器端有两种方式对应,一种是pre-compressing,先压缩好,再提供传输,静态网页多的话可以这么做,但是现在网站都是 动态内容,用户浏览器没有请求时,那个网页甚至是不存在的。
因此,当实时调用动态网页时,速度一般是很慢的。为了解决这个问题,一般采取Cache,但是服务器端给的还是同样大小的文件,除非能够进行一种 “实时”的压缩,把压缩过的动态内容传给用户。
可惜,不论是Apache、Microsoft的IIS、IBM的WebSphere Server的缺省都不支持这种动态内容的实时压缩。流行的 SQUID Proxy-Caching Server 也没有压缩数据的能力。
mod_gzip提供的正是这种能力,它可以把无论动态还是静态的内容,无论 HTML、XML,还是SQL, Java, WML, VRML等产生的内容在服务器端,进行实时压缩并传输,而不需要在客户端安装任何东西。
它是一个开放源代码的、标准的Apache模块,C源程序只有300K, 安装非常容易,这意味着 可以在5分钟内,使你的网站提速 75% !
二、安装Apache mod_gzip
1、下载最新的mod_gzip
http://www.remotecommunications.com/apache/mod_gzip/
最新版本:
mod_gzip v 1.3.19.1a - 03/08/01
mod_gzip.c
URL: http://www.remotecommunications.com/apache/mod_gzip/src/1.3.19.1a/mod_gzip.c
2、添加 Apache 模块
apxs -i -a -c mod_gzip.c
(apxs 参考:http://httpd.apache.org/docs/programs/apxs.html,一般在apache-devel包)
3、配置 httpd.conf (/etc/httpd/conf/httpd.conf)
# Dynamic Shared Object (DSO) Support
LoadModule gzip_module modules/mod_gzip.so
AddModule mod_gzip.c
添加到文件最后:(只是一个参考,你可以按照你的需要修改)
mod_gzip_on yes
mod_gzip_dechunk yes
mod_gzip_keep_workfiles No
mod_gzip_temp_dir /tmp
mod_gzip_minimum_file_size 1002
mod_gzip_maximum_file_size 0
mod_gzip_maximum_inmem_size 1000000
mod_gzip_item_include file .htm$
mod_gzip_item_include file .jpg$
mod_gzip_item_include file .gif$
mod_gzip_item_include file .html$
mod_gzip_item_include mime text/.*
mod_gzip_item_include file .php$
mod_gzip_item_include mime "jserv-servlet"
mod_gzip_item_include handler "jserv-servlet"
mod_gzip_item_include mime "application/x-httpd-php.*"
mod_gzip_item_include mime httpd/unix-directory
mod_gzip_item_exclude file ".css$"
mod_gzip_item_exclude file ".js$"
mod_gzip_item_exclude file ".wml$"
LogFormat "%h %l %u %t "%V %r" %s %b mod_gzip: %{mod_gzip_result}n
In:%{mod_gzip_input_size}n
Out:%{mod_gzip_output_size}n:%{mod_gzip_compression_ratio}npct."
common_with_mod_gzip_info2
CustomLog /var/log/httpd/mod_gzip common_with_mod_gzip_info2
4、加速显示结果分析
上面的 LogFormat、CustomLog将结果写在了log文件:
GET /ubb/Forum3/HTML/000007.html HTTP/1.1" 200 4338 mod_gzip: OK In:18524 Out:4338:77pct.
GET /ubb/icons/icon7.gif HTTP/1.1" 304 - mod_gzip: SEND_AS_IS:NO_200 In:0 Out:0:0pct.
GET /news/article.php?id=22 HTTP/1.1" 200 6414 mod_gzip: DECHUNK:OK In:25372 Out:6414:75pct.
..
可以看出:
.htm In:18524 Out:4338:77pct.
.gif In:0 Out:0:0pct.
.php?id=XXX In:25372 Out:6414:75pct.
压缩后约为压缩前的1/4, .gif 没有压缩(因为它本身就是压缩格式)。