CentOSApache如何开启Gzip开启
为什么要开启gzip?
在服务器上开启gzip压缩,会大大加快网站访问速度,带来良好的用户体验,降低网站流量。这些好处显而易见。下图是本站首页打开gzip后的情况:页面大小从81.7k压缩到13.9k,接收数据仅需21毫秒即可完成。
当然,gzip也不是没有坏处。首先,服务器在压缩网页数据时会占用一定的服务器资源。另外,如果gzip压缩过猛(压缩级别过高),老款IE系列可能无法正常打开网页。不过现在服务器一般性能不会有太大问题,所以开启gzip利大于弊。
如何知道服务器是否启用了gzip压缩?很简单。打开firebug,查看network选项卡,看看是否有Content-Encoding:gzip项。如果有,说明已经打开了。Chrome自带的调试工具(F12)也可以看到。最简单的方法是去Chinaz(http://tool.chinaz.com/Gzips/)看网站数据。
怎样开启gzip压缩?
以CentOS为例,打开Apache的httpd.conf文件:
viewsource
打印?
1
vim/etc/httpd/conf/httpd.conf
搜索是否有这两行:
viewsource
打印?
1
loadmoduledeflate_modulemodules/mod_deflate.so
2
loadmoduleheaders_modules/mod_headers.so
请不要添加它,并确保mod_deflate.so文件存在于/etc/httpd/modules目录中。Mod_deflate是一个压缩模块,就是对要传输给客户端的代码进行gzip压缩;mod_headers模块的作用是告诉浏览器页面是由gzip压缩的。如果没有开启mod_headers,浏览器会下载gzip压缩的页面,无法正常显示。
如果没有问题,请添加:
viewsource
打印?
01
<;location/>;
02
AddOutputFilterByTypeDEFLATEtext/plain
03
AddOutputFilterByTypeDEFLATEtext/CSS
04
AddOutputFilterByTypeDEFLATE应用程序/xml
05
AddOutputFilterByTypeDEFLATE应用程序/rss+xml
06
AddOutputFilterByTypeDEFLATE应用程序/atom_xml
07
AddOutputFilterByTypeDEFLATE应用程序/x-javascript
08
AddOutputFilterByTypeDEFLATE应用程序/x-httpd-php
09
AddOutputFilterByTypeDEFLATEtext/html
10
<;/Location>;
保存并关闭文件。只需重启Apache:servicehttpdrestart。
其它写法
viewsource
打印?
01
<;IfModulemod_deflate.c>
02
#需要像开关一样,告诉apache压缩传输到浏览器的内容
03
SetOutputFilterDEFLATE
04
05
#设置不压缩后缀为gif、jpg、jpeg和png的图片文件
06
SetEnvIfNoCase请求_URI。(?:gif|jpe?g|png)$no-gzipdon-vary
07
08
#同上,只是exe、tgz、gz设置不正确。。。压缩
09
SetEnvIfNoCase请求_URI。(?:exe|t?gz|zip|bz2|sit|rar)$no-gzipdon-vary
10
SetEnvIfNoCase请求_URI。(?:pdf|mov|avi|MP3|MP4|RM)$no-gzipdon-vary
11
12
#设置压缩文本文件的内容,如text/htmltext/csstext/plain等。
13
AddOutputFilterByTypeDEFLATEtext/*
14
15
#这段代码你只需要知道应用程序/javascript应用程序/x-javascript段落,就是压缩JavaScript文件
16
AddOutputFilterByTypeDEFLATE应用程序/ms*应用程序/vnd*应用程序/postscript应用程序/javascript应用程序/x-javascript
17
18
#这一段告诉apache压缩php类型的文件
19
AddOutputFilterByTypeDEFLATE应用程序/x-httpd-php应用程序/x-httpd-fastphp
20
21
#Netscape4.x有些问题,所以只压缩文件类型为text/html的
。
22
浏览器匹配^mozilla/4gzip-only-text/html
23
24
#网景4.06-4.08问题比较多,不要开压缩
25
browsermatch^mozilla/4.0[678]no-gzip
26
27
#IE浏览器会装成网景,其实没问题
28
browsermatchbMSIE!不-gzip!gzip-only-text/html
29
<;/ifmodule>;
apache中的gzip压缩是在这里配置的,新的配置会在重启apache后生效。但是,打开gzip需要额外的CPU资源。
另一个题外话:图片不需要打开gzip压缩!
用压缩图片做网页背景,cpu飙升,页面假死严重(ie6)
所有的gif或png图像都是压缩的,压缩这些文件只会增加服务器的负担。
对于图像优化,可以使用ImageOptimizer进行压缩,前提是你的服务器足够强大,可以忽略。
评论列表(0条)