要实现内容的无差别压缩,可以在Apache配置文件中对整个站点或需要启用压缩的目录加入SetOutputFilter指示如下:
SetOutputFilter Deflate
要启用对特定MIME类型内容的压缩,可以在配置文件中使用AddOutputFilterByType指示,例如下面这样:
AddOutputFilterByType DEFLATE text/html
注意,所有被指定MIME类型输出都将被压缩,无论它是来自于一个静态的磁盘文件还是一个动态程序(如CGI或mod_perl)输出。
有些老的浏览器无法正确的处理压缩过的内容,这时可以用BrowserMatch指示来过滤掉特定的浏览器类型,你可以查看mod_deflate 帮助手册获取更详细的资料。
IIS 6
IIS 6包括了一个简便易用的内置压缩组件。由于是内置式的,它不是通过IISAPI接口,它的压缩速度极快,是IIS 5和更早版本IIS的第三方HTTP压缩组件的最佳替代品。压缩系统可以设置对动态(例如脚本输出仙鹤)和静态内容进行压缩,它也可以在目录中缓冲压缩信息,这样当再次访问以前访问过的内容时,无需再次进行压缩从而改善了动态和静态内容的访问性能。
为了实现在IIS 6中的HTTP压缩技术,用户打开网站的属性页面,编辑全局属性,切换到“服务”标签,在HTTP压缩选项中配置选择项。
缓冲的文件存储于临时目录中,默认的设置是IIS中的元数据目录的子目录下。该目录必须位于NTFS格式分区上,你可以设定缓冲区的大小或是设定为无限,我们建议最大可设置为该分区的两倍(这些数据还包括了动态脚本的输出内容)。
IIS5和IIS的更老版本
IIS5和IIS的更老版本没有内置压缩功能,但是,它们支持ISAPI过滤器。我们建议用户使用Port80的
ZipEnable。虽然也存在其它类似功能的产品,但它是少数微软特别推荐的产品之一,而且它与IIS 6兼容,通过配置IIS 6的设置,它可以将IIS6的HTTP压缩功能进一步在目录级别上进行进行控制。
服务器的性能表现
显然,对传输数据进行压缩需要一定的CPU时间,这种压缩过程可能会对网站造成不良的影响,因为选定的每个目标在发送前都必须进行压缩。这里IIS6领先了Apache一小步,它建立了一个缓冲区域,放压缩文件放在里面,这样对于那些被频繁访问的内容可以大大减少CPU压缩处理时间。但这不能完全避免实时在线压缩的需要,大量的动态的内容还是必须被在线压缩,而这些动态内容所需的缓存空间可能极其巨大。