CentOS Apache 如何开启 Gzip 开启

gzip 方法记录
服务器君一共花费了450.488 ms进行了6次数据库查询,努力地为您提供了这个页面。
试试阅读模式?希望听取您的建议

为什么要开启 gzip ?

服务器开启 gzip 压缩会大大的提高网站访问速度,带来良好的用户体验,而且降低网站流量,这些好处是显而易见的。下图是本站首页开启 gzip 后的情况:网页大小由 81.7k 压缩到 13.9k,receiving 接收数据只要 21 毫秒就完成了。

当然 gzip 并不是百利而无一害。首先服务器压缩网页数据会占用一定的服务器资源,另外如果 gzip 压缩得太厉害(压缩等级太高)可能会让旧版的 IE 系列无法正常打开网页。不过现在服务器一般性能都不会有太大问题,所以开启 gzip 利大于弊。

怎样知道服务器是否启用了gzip压缩呢?很简单,开启 firebug,看 network 选项卡,看是否有Content-Encoding : gzip 项,有则表示已开启。chrome 自带的调试工具(F12)也能看到。最简单地是去 chinaz(http://tool.chinaz.com/Gzips/) 去看网站数据。

怎样开启gzip压缩?

CentOS 为例,打开Apache的httpd.conf文件:

vim /etc/httpd/conf/httpd.conf

搜索是否有这两行:

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

没有请加上,并确保 /etc/httpd/modules 目录存在 mod_deflate.so 文件。mod_deflate是压缩模块,就是对要传输到客户端的代码进行gzip压缩;mod_headers模块的作用是告诉浏览器页面使用了gzip压缩,如果不开启mod_headers那么浏览器就会对gzip压缩过的页面进行下载,而无法正常显示。

如果没问题,在 httpd.conf 最后加上:

<Location />
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/css
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 text/html
</Location>

保存并关闭文件。重启Apache即可:service httpd restart。

其它写法

<IfModule mod_deflate.c>
    #必须的,就像一个开关一样,告诉apache对传输到浏览器的内容进行压缩
    SetOutputFilter DEFLATE 
	
    #设置不对后缀gif,jpg,jpeg,png的图片文件进行压缩   
    SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary 
	
    #同上,就是设置不对exe,tgz,gz。。。的文件进行压缩
    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

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

    #这段代码你只需要了解application/javascript application/x-javascript这段就可以了,这段的意思是对javascript文件进行压缩
    AddOutputFilterByType DEFLATE application/ms* application/vnd* application/postscript application/javascript application/x-javascript 

    #这段是告诉apache对php类型的文件进行压缩
    AddOutputFilterByType DEFLATE application/x-httpd-php application/x-httpd-fastphp 

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

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

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

配置到这里apache中的gzip压缩就配置完成,重启apache后,新的配置就会生效。不过开启gzip功能需要额外CPU资源开销。

另外题外话:图片没必要开启gzip压缩!

  1. 使用经由压缩过的图片作为网页背景,cpu飙高,页面假死严重(ie6)
  2. 所有的gif 或png等图片这些格式都是经过压缩过后的,对于这些文件进行压缩只是增加服务器负担而已。

对于图片优化的话可以使用ImageOptimizer来进行压缩,前提你的服务器足够强大那你可以忽略了。

本文地址:http://www.nowamagic.net/librarys/veda/detail/2464,欢迎访问原出处。

不打个分吗?

转载随意,但请带上本文地址:

http://www.nowamagic.net/librarys/veda/detail/2464

如果你认为这篇文章值得更多人阅读,欢迎使用下面的分享功能。
小提示:您可以按快捷键 Ctrl + D,或点此 加入收藏

大家都在看

阅读一百本计算机著作吧,少年

很多人觉得自己技术进步很慢,学习效率低,我觉得一个重要原因是看的书少了。多少是多呢?起码得看3、4、5、6米吧。给个具体的数量,那就100本书吧。很多人知识结构不好而且不系统,因为在特定领域有一个足够量的知识量+足够良好的知识结构,系统化以后就足以应对大量未曾遇到过的问题。

奉劝自学者:构建特定领域的知识结构体系的路径中再也没有比学习该专业的专业课程更好的了。如果我的知识结构体系足以囊括面试官的大部分甚至吞并他的知识结构体系的话,读到他言语中的一个词我们就已经知道他要表达什么,我们可以让他坐“上位”毕竟他是面试官,但是在知识结构体系以及心理上我们就居高临下。

所以,阅读一百本计算机著作吧,少年!

《Head First设计模式(中文版)》 弗里曼 (作者), 等 (作者)

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词)。

更多计算机宝库...