回到顶部
您的当前位置: 编程语言> JAVA> 开发工具> Apache
Apache配置文件开启gzip压缩传输
2014-04-19 00:14:53
标签: 网络整理 Apache 配置 开启 gzip 压缩 传输
1、修改httpd配置文件,放开对应模块
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

打开httpd.conf后,先将上面两行配置前面的#号去掉,这样apache就会启用这两个模块,其中mod_deflate是压缩模块,就是对要传输到客户端的代码进行gzip压缩;mod_headers模块的作用是告诉浏览器页面使用了gzip压缩,如果不开启mod_headers那么浏览器就会对gzip压缩过的页面进行下载,而无法正常显示。

2、在httpd.conf中加入以下代码
<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
    SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
    AddOutputFilterByType DEFLATE text/*
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4.0[678] no-gzip
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>

解释说明如下:

SetOutputFilter必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩。

SetEnvIfNoCase : 设置不对固定后缀的图片或文件进行压缩,如上面列举的gif、jpe?g、png、exe等。

AddOutputFilterByType : 设置对文件是文本的内容进行压缩,例如text/html text/css text/plain等。

BrowserMatch : 特殊版本浏览器设置。

^Mozilla/4 gzip-only-text/html # Netscape 4.x 有一些问题,所以只压缩文件类型是text/html的。

^Mozilla/4.0[678] no-gzip # Netscape 4.06-4.08 有更多的问题,所以不开启压缩。

\bMSIE !no-gzip !gzip-only-text/html # IE浏览器会伪装成 Netscape ,但是事实上它没有问题。