在Apache中启用压缩

作者: harde 分类: 计算机 发布时间: 2013-11-11 13:20

更换了服务器,正好也折腾折腾网站,今天发现站点没有启用gzip压缩。
貌似在之前的服务器上也没打开。。。。。。

搜索一下,发现原来我out了…现在已经不再使用Gzip了,而是使用deflate了。

Apcache的gzip与deflate对比
1. 两者都是使用Gzip压缩算法
2. deflate压缩速度略快,gzip压缩比略高。默认情况下,gzip会比deflate多压4%-6%
3. gzip对服务器的CPU占用要高一些,deflate是专门为保护服务器性能的压缩模块,它仅需很小的资源来压缩文件
mod_deflate可以使用DeflateCompressionLevel指令来设置压缩级别,指令范围1-9(1:压缩速度最快,压缩后文件最大;9:压缩速度最慢,压缩后文件最小),默认设置为6。
(引用:http://iiphp.blog.sohu.com/163686014.html)

因为再Apache 1.X时代,Apache没有默认的压缩模块,所以使用mod_gzip来压缩。
而在Apache 2.X时代,Apache已经默认开启了mod_deflate作为压缩模块。
我们做的只是配置。

首先确定加载了mod_deflate与mod_headers

#vim /etc/httpd/conf/httpd.conf

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

然后找个合适的位置贴入下面的内容
(我放在了### Section 3: Virtual Hosts这句话之前,也就是### Section 2: ‘Main’ server configuration的最后)。

<IfModule mod_deflate.c>
    #开启压缩
    SetOutputFilter DEFLATE
    #不对各种图片启用压缩
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    #不对可执行文件和压缩文件启用压缩
    SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
    #不对pdf和各种多媒体文件启用压缩
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

    #对文本类内容启用压缩,例如text/html、text/css、text/plain等等
    AddOutputFilterByType DEFLATE text/*
    #对Office文件以及各种脚本语言启用压缩
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
    #对php类型的文件进行压缩
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
</IfModule>

在Apache官方文档中还有

    BrowserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的
    BrowserMatch ^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的问题,所以不开启压缩
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # IE浏览器会伪装成 Netscape ,但是事实上它没有问题

这样的内容,是为了兼容老浏览器的。
个人认为没有什么必要。因为再当前计算机和互联网大环境下,个人认为没有什么必要去兼容了。

修改好之后,使用

# apachectl configtest

来测试一下配置文件是否有错,如果得到的结果是Syntax OK,证明配置无误。就可以重启Apache了。

# service httpd restart

更多有关mod_deflate的内容,
可以参见Apche官方文档(英文)《Apache Module mod_deflate》:http://httpd.apache.org/docs/2.2/mod/mod_deflate.html

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注