怎样开启GZip,压缩网站JS/CSS文件加速网站的访问速度

作为拥有独立博客或者网站的爱好者来说,GZip是一个为博客或网站加速的好方法。

gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。GZip用于UNIX系统的文件压缩,可对多种类型的文件进行压缩,HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。 对于CSS,JS,以及HTML文件更具有极高的压缩率,有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的。在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate。当站点引用了比较多的JS,开启GZip后,直接减少了浏览器对网页加载内容的大小,加速效果可想而知~而且可以节省服务器流量!

一般的主机或者服务器都开启了GZip,那就好办了,只要你的BLOG或CMS程序可以选择性的开启GZip,那就开启吧。(友情提醒:开启Gzip会稍微占用了一些服务器和客户端的CPU

如果没有,那么就...

1、Apache启用gzip

如果要开启gzip的话,一定要打开下面二个模块.

LoadModule headers_module modules/mod_headers.so

LoadModule deflate_module modules/mod_deflate.so

设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源.

DeflateCompressionLevel 3

AddOutputFilter DEFLATE html xml php js css

<Location />

SetOutputFilter DEFLATE

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 \\.(?: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

Header append Vary User-Agent env=!dont-vary #对代理的设置

</Location>

另外讲一下,有关squid对gzip的处理

在squid中,对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩)如果频繁交替访问,例如:对某个cache住的目标,一个http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请求又会导致squid再次更新缓存。这样那squid缓存数据就要频繁更新,这就极大的降低了cache命中率。

不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.

这个神通广大的模块就是mod_gzip.它通过用和gzip一样的压缩算法对apache发出的页面进行压缩,可能的话可以把页面压缩成为原来大小的十份之一。哪,如果10K的页面只要传1K这不就是提速10倍嘛。当然一般网页只可以达到3-6倍。那也很不错。对吧。连google这样一个大的网站都采用这个技术。你还不快跟上?

这样一个好东东,来来来,我告诉你如何安装:分3步,1、下载,2、修改配置,3、测试。

下载

到http://www.remotecommunications.com/apache/mod_gzip 下载mod_gzip.c 还有它的补丁。

安装, 配置

把mod_gzip放到你的apache的源代码目录下,新建一个mod_gzip目录如果需要补丁(针对1.3.17.la版) 还需运行:

patch mod_gizp.c

按你需要,在配置中选择动态DSO或静态编译进apache系统。如何处理在README中讲得很清楚,如-add-module=mod_gzip.c, make,make install等等。这里不多讲。

把下列配置加入httpd.conf尾部。

# MOD_GZIP configuration

mod_gzip_on Yes

mod_gzip_minimum_file_size 1002

mod_gzip_maximum_file_size 0

mod_gzip_maximum_inmem_size 60000

mod_gzip_item_include mime "application/x-httpd-php"

mod_gzip_item_include mime text/*

mod_gzip_item_include mime "httpd/unix-directory"

mod_gzip_dechunk Yes

mod_gzip_temp_dir "/tmp"

mod_gzip_keep_workfiles No

mod_gzip_item_include file ".php3$"

mod_gzip_item_include file ".txt$"

mod_gzip_item_include file ".html$"

mod_gzip_item_exclude file ".css$"

mod_gzip_item_exclude file ".js$"

在保存修改后运行

…/bin/apachectl configtest确保配置修改无误。

然后用 apachectl restart 指令重起服务。

修改,测试

在宣布做好了之前在测试一下是优秀程序员的习惯。为了尽量不影响你的用户的浏览,我们可以用把新的apache驱动在8080端口上或者用指令控制mod_gzip起作用的目录,而不是一下子全用mod_gzip.

用法如下:

MOD_GZIP configuration

没有问题后你就可以让你的用户很开心的发现’XX网站现在好快哦。’

Mod_gzip真的很神奇,100K的HTML大 文档只要12K就可以传到用户端了。越先采用这个技术你的用户对你的网站的高速度印象就越深。不过有所得必有所失,由于解压是在客户端进行的,效果和用户 的浏览器有一定关系。

2、无Gzip模块实现Gzip压缩js和css

有的主机没有安装Gzip模块,如果你登录 cPanel 后发现有下面那个 Optimize Website 图标,点击进入后选中 Compress all content,Update settings即可开启我们的网站加速功能~当然,我们也可以根据自己的需要,选择第三项,压缩指定的类型以节约服务器资源。

如果我们的网站不是WordPress,在cPanel中也没有发现 Optimize Websites 图标,没关系照样OK。

1.新建一个名为 php.ini 的文件,输入以下内容,保存,上传至网站根目录即可。

output_buffering = Off
output_handler =
zlib.output_compression = On

适用于支持zlib类库的空间,空间是否支持zlib类库可以从探针中查看。现在的空间大多都支持。

2.将以下代码拷贝到.htaccess文件中,上传至网站根目录中即可~

<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript
</ifmodule>

适用于VPS或者DS。在配置服务器时,将Apache2.x系列已经内置了的Deflate模块一并安装即可。具备此模块的共享空间同样适用。mod_deflate模块配置相对灵活,推荐安装。另外还可将image/gif image/jpeg image/png添加进去。

WordPress博客的话,有两个兄弟版的WordPress插件:WP CSSWP JS,作者都是Halmat Ferello。

不过WP CSS压缩后的CSS文件在IE系列兼容性较差的浏览器上都能正常解析。但在进行W3C CSS在线验证时会产生未知错误(当然,CSS还是符合W3C标准的),原因未明。

WP JS只支持通过函数调用。首先它会通过JSmin压缩JavaScript脚本,并缓存起来,和WP CSS一样,降低了服务器负担。WP JS对加密后的JavaScript脚本支持不好。

标签: css, 学习, 建站, javascript, Gzip

此文章共有条评论, 人参与 |Powerd By Angboo