开启Gzip压缩

Apache2中的实时压缩解压的模块编译在mod_deflate模块中,替换了原来的mod_gzip模块。

编译apache的时候 –enable-deflate  这个参数是默认开启的,编译完会有mod_deflate模块。

配置站点:

如果我们想使一个文件传输的时候进行加密,我们在站点配置文件里增加这样的配置

<Location />
SetOutputFilter DEFLATE
# 设置压缩频率,取值范围在 1(最低压缩率) 到 9(最高压缩率)之间
# 不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源
# DeflateCompressionLevel 3
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>
这样,/opt/httpd-2.2.9/htdocs目录下的所有mime类型为text/html的文件就可以启用

未压缩的http头

 

Date Tue, 28 Oct 2008 13:04:15 GMT
Server Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6
Last-Modified Tue, 28 Oct 2008 12:51:52 GMT
Etag “30623-55fda-45a4fb62a8a00″
Accept-Ranges bytes
Content-Length 352218
Content-Type text/html
Vary Accept-Encoding,User-Agent

压缩后的http头

 

Date Tue, 28 Oct 2008 13:07:39 GMT
Server Apache/2.2.9 (Unix) DAV/2 PHP/5.2.6
Last-Modified Tue, 28 Oct 2008 12:51:52 GMT
Etag “30623-55fda-45a4fb62a8a00″-gzip
Accept-Ranges bytes
Vary Accept-Encoding,User-Agent
Content-Encoding gzip
Content-Length 2778
Keep-Alive timeout=5, max=100
Connection Keep-Alive
Content-Type text/html

------------------------------------------------------------

<Location />

# 插入过滤器
SetOutputFilter DEFLATE

# Netscape 4.x 有一些问题...
BrowserMatch ^Mozilla/4 gzip-only-text/html

# Netscape 4.06-4.08 有更多的问题
BrowserMatch ^Mozilla/4\.0[678] no-gzip

# MSIE 会伪装成 Netscape ,但是事实上它没有问题
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>
http://lamp.linux.gov.cn/Apache/ApacheMenu//mod/mod_deflate.html

 

IIS 6.0中配置HTTP Gzip压缩

一. HTTP压缩概述

HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。当然,同时也会增加一点点服务器的负担。Gzip是比较常见的一种HTTP压缩算法。

本文介绍的HTTP压缩方式,采用的是Windows系统设置的方式,优点是效率较高。

二. HTTP压缩工作原理

Web服务器处理HTTP压缩的工作原理如下:

Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩;
如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;
如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;
如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;
如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;
如果请求文件是ASPX等动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

三. IIS 6.0中配置HTTP Gzip压缩的步骤:

1) 打开Internet信息服务(IIS)管理器,右击"网站"->"属性",选择"服务"。在"HTTP压缩"框中选中"压缩应用程序文件"和"压缩静态文件",按需要设置"临时目录"和"临时目录的最大限制";

2) 在Internet信息服务(IIS)管理器,右击"Web服务扩展"->"增加一个新的Web服务扩展...",在"新建Web服务扩展"框中输入扩展名"HTTPCompression",添加"要求的文件"为C:\WINDOWS\system32\inetsrv\gzip.dll,其中 Windows系统目录根据您的安装可能有所不同,选中"设置扩展状态为允许";

3) 使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml(建议先备份),找到Location ="/LM/W3SVC/Filters/Compression/gzip",如果需要压缩动态文件,则将 HcDoDynamicCompression设置为"TRUE",并在HcScriptFileExtensions中增加您要压缩的动态文件后缀名,如aspx;如果需要压缩静态文件,则将HcDoStaticCompression和HcDoOnDemandCompression设置为 "TRUE",并在HcFileExtensions中增加您需要压缩的静态文件后缀名,如xml、css等; HcDynamicCompressionLevel和HcOnDemandCompLevel表示需要的压缩率,数字越小压缩率越低; HcDynamicCompressionLevel改成9,(0-10,9是性价比最高的一个)。

4) 编辑完毕后保存MetaBase.xml文件;如果文件无法保存,则可能IIS正在使用该文件。打开"开始"->"管理工具"->"服务",停止"IIS Admin Service"后,即可保存;

5) 最后,重新启动IIS。可以到HTTP压缩测试网站http://www.pipeboost.com/
验证结果。

此条目发表在article分类目录,贴了, 标签。将固定链接加入收藏夹。