现在的位置: 首页 > 综合 > 正文

网站优化一:apache开启gzip压缩配置详解

2012年11月16日 ⁄ 综合 ⁄ 共 2087字 ⁄ 字号 评论关闭

如果你服务器带宽很高就不需要做这步了,但是如果你想让你的带宽节省点开启你的gzip是必不可少,下面我们介绍了关于apache开启gzip压缩配置与用法和其它区别分享。

启动apache2的gzip

在http.conf里会找到如下行; 如果没有请加上

#LoadModule deflate_module modules/mod_deflate.so  去掉“#”号。表示已经启用了GZIP。

更多定制

开启了压缩功能.可以很好的使用了,如果你还想更详尽的定制的话,请看下面:

可以在http.conf后面加上这一段进行定制:(如非必要,用默认的就好了)

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

DeflateCompressionLevel 9是指压缩程度的等级,从1到9,9是最高等级。据了解,这样做最高可以减少8成大小的传输量(看档案内容而定),最少也能够节省一半。

DeflateCompressionLevel 预设可以采用 6 这个数值,以维持耗用处理器效能与网页压缩质量的平衡。


Web服务器处理HTTP压缩的过程如下:
    1. Web服务器接收到浏览器的HTTP请求后,检查浏览器是否支持HTTP压缩(Accept-Encoding 信息);

    2. 如果浏览器支持HTTP压缩,Web服务器检查请求文件的后缀名;

    3. 如果请求文件是HTML、CSS等静态文件,Web服务器到压缩缓冲目录中检查是否已经存在请求文件的最新压缩文件;

    4. 如果请求文件的压缩文件不存在,Web服务器向浏览器返回未压缩的请求文件,并在压缩缓冲目录中存放请求文件的压缩文件;

    5. 如果请求文件的最新压缩文件已经存在,则直接返回请求文件的压缩文件;

    6. 如果请求文件是动态文件,Web服务器动态压缩内容并返回浏览器,压缩内容不存放到压缩缓存目录中。

第1步
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中加入以下代码,可以加到任何空白地方,不了解apache的朋友,如果担心加错地方,就放到http.conf文件的最后一行。如果是虚拟服务器可以写.htaccess文件里面,然后放在项目下即可。

<IfModule
mod_deflate.c>
02     SetOutputFilter
DEFLATE    
#必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩
03  
04     SetEnvIfNoCase
Request_URI .(?:gif|jpe?g|png)$ no-
gzip dont-vary #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩
05     SetEnvIfNoCase
Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-
gzip dont-vary #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩
06     SetEnvIfNoCase
Request_URI .(?:pdf|mov|avi|mp3|mp4|
rm)$
no-
gzip dont-vary
07  
08     AddOutputFilterByType
DEFLATE text/* 
#设置对文件是文本的内容进行压缩,例如text/html 
text/css  text/plain等
09     AddOutputFilterByType
DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript 
#这段代码你只需要了解application/javascript
application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩
10     AddOutputFilterByType
DEFLATE application/x-httpd-php application/x-httpd-fastphp 
#这段是告诉apache对php类型的文件进行压缩
11  
12

抱歉!评论已关闭.