日期:2014-05-17  浏览次数:20941 次

Apache配置HTTP压缩功能

对于Apache而言,有两种情况:

1.?针对Apache2.0之前的版本,原本是不支持压缩传输的,不过可以通过添加第三方的mod_gzip模块来实现。

2. 针对Apache2.0及之后的版本,Apache提供压缩传输支持,使用mod_deflate模块即可。

?

下面是对Apache2.0及之后的版本进行配置的说明

1. 安装mod_deflate

1) 如果使用的是系统自带的Apache,那么直接配置http.conf即可。

2) 如果使用源码编译的Apache,那么有两种方式可以选择:

方式一:

重新编译Apache,在configure时,加上--enable-headers --enable-deflate即可。

?

方式二

使用apxs工具,操作如下:

#/usr/local/apache2/bin/apxs -i -c -a mod_deflate.c

?

?

2. 配置方式
方式一:

LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so(如果加载libphp5.so,mod_deflate.so需要在其后加载)

?

?

<IfModule mod_deflate.c>
DeflateCompressionLevel 6
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js
</IfModule>

?

方式二:

LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so(如果加载libphp5.so,mod_deflate.so需要在其后加载)

?

DeflateCompressionLevel 6

?

<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>

?

?

关于mod_deflate的详细内容,可以参考http://httpd.apache.org/docs-2.0/mod/mod_deflate.html

?

?

3. 测试压缩效果

测试工具:http://www.whatsmyip.org/http_compression/

测试工具:http://www.port80software.com/products/httpzip/