【apache开启gzip压缩】apache开启gzip有什么优缺点

时间:2020-01-11  来源:apache  阅读:

我想现在网站一般都开启了gzip压缩的吧,特别是大型网站,开启了gzip将对传输效率大大的提高,一般压缩率可达75%,也就是100kb,压缩后只有25k的样子。

 

既然gzip压缩这么好,当然毫无疑问开启?是的,一般我们都会开启它,特别是对于流量大的网站来说,开启后的效果太明显了。在apache里面,只需要开启mod_headers.so和mod_deflate.so再稍加配置就可以了。我们也可以自定义压缩比,取值范围在1(最低)到9(最高)之间,不过不建议设置的太高,太高后会增加cpu开销。

 

所以开启gzip的好处就是大大的节省传输的大小,提高网页响应速度和节约带宽,如下图,压缩后的效果非常明显。

 

apache开启gzip的好处

 

利的背后,肯定也少不了弊端。那就是开启gzip后会额外的增加很多cpu的开销,会对服务器产生一起压力,同时,客户端解压也需要开销(不过客户端还好),这也是不建议把压缩率设置太高的原因。不过现在硬件一般都比较好了,牺牲一些硬件来提升性能和用户体验还是很划算的!不是说大家好才是真的好吗,只有网页打开速度快了,才是真的好了。

 

apache2.0以上(包括apache2.0)的版中gzip压缩使用的是mod_deflate模块,下面是具体配置步骤
第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文件里面,然后放在项目下即可。

1、mod_gzip方式


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


2、deflate_Module方式

(1)严格匹配文件类型

# mod_deflate: 

 

DeflateCompressionLevel 6 #压缩率, 6是建议值. 

AddOutputFilterByType DEFLATE text/plain 

AddOutputFilterByType DEFLATE text/html 

AddOutputFilterByType DEFLATE text/php 

AddOutputFilterByType DEFLATE text/xml 

AddOutputFilterByType DEFLATE text/css 

AddOutputFilterByType DEFLATE text/javascript 

AddOutputFilterByType DEFLATE application/xhtml+xml 

AddOutputFilterByType DEFLATE application/xml 

AddOutputFilterByType DEFLATE application/rss+xml 

AddOutputFilterByType DEFLATE application/atom_xml 

AddOutputFilterByType DEFLATE application/x-javascript 

AddOutputFilterByType DEFLATE application/x-httpd-php 

AddOutputFilterByType DEFLATE image/svg+xml 

AddOutputFilterByType DEFLATE image/gif image/png image/jpe image/swf image/jpeg image/bmp 

# Don't compress images and other #排除不需要压缩的文件 

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 .(?:html|htm)$ no-gzip dont-varySetEnvIfNoCase 

#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|doc)$ no-gzip dont-vary 


(2)过滤文件类型

# mod_deflate: 

 

DeflateCompressionLevel 6 

SetOutputFilter DEFLATE #压缩所有文件 

#Don't compress images and other #过滤不需要压缩文件 

#SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 

SetEnvIfNoCase Request_URI .(?:html|htm)$ no-gzip dont-vary 

SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary 

SetEnvIfNoCase Request_URI .(?:pdf|doc)$ no-gzip dont-vary 

  本配置到这里apache中的gzip压缩就配置完成,重启apache后,新的配置就会生效。最后再用工具检查一下,果然分数提高了很多~呵呵。 不过开启gzip功能需要额外CPU资源开销

【apache开启gzip压缩】apache开启gzip有什么优缺点

http://m.bbyears.com/jiaocheng/84448.html

推荐访问:apache评分 apache怎么读
相关阅读 猜你喜欢
本类排行 本类最新