技术开发 频道

通过压缩Web文件提高网站吞吐量



【IT168 专稿】

有效压缩站点内容文件(包括html,php,css ,txt,xml等),对于提升web站点的性能具有很明显的效果。具体详细描述见《优化Web站点资源措施》。
要保证web站点的性能,需要确保你发送的经过gzip压缩过的内容,如何开始对网站内容进行gzip,并且还与你主机所允许的规定相一致呢?下面就是将要介绍的几种选择。文章的假设服务器运行的PHP和Apache。
选择1: Apache 2 以前的版本进行mod_gzip操作
如果你使用Apache 1.2 和1.3,那么mod_gzip 模块是可用的。为了检查Apache的版本,你可以检查Firebug'中Net面板,查找对于任何请求,服务器响应的头部。如果你不能看到它,那么检查提供商的文档或者创建一个简单的PHP脚本来回显这些信息到浏览器中去,如:
<?php echo apache_get_version(); ?>
在服务器头部信息中,你或许能看到mod_gzip版本,如果它被安装了的话。它或许是这个样子的:
Server: Apache/1.3.37 (Unix) mod_gzip/1.3.26.1a.....
好了,在我们将信息发送给浏览器之前,我们已经建立了我想要压缩的所有内容,PHP脚本输出,静态HTML页面,JavaScripts和样式表。那么现在就可以通过mod_gzip来实现,在你站点的根目录下创建一个.htaccess文件,包括:
mod_gzip_on Yes
mod_gzip_item_include mime ^application/x-javascript$
mod_gzip_item_include mime ^application/json$
mod_gzip_item_include mime ^text/.*$
mod_gzip_item_include file \.html$
mod_gzip_item_include file \.php$
mod_gzip_item_include file \.js$
mod_gzip_item_include file \.css$
mod_gzip_item_include file \.txt$
mod_gzip_item_include file \.xml$
mod_gzip_item_include file \.json$
 
Header append Vary Accept-Encoding
 
第一行是的mod_gzip命令可用。下面的三行设置压缩是基于MIME类型上的。下面的部分是一样,只是以文件扩展为基础。最后的一行是设置Vary头部的,包括Accept-Encoding值。
如果你想发送Vary: *头部,使用:
Header set Vary *
需要注意的是,一些主机提供商不允许你使用Header 定向。如果存在这种情况,希望你可以用下面这句话来代替最后一行“
mod_gzip_send_vary On
这也将要设置Vary头部为Accept-Encoding.
需要注意的是,这里或许有很小的文件存在,如果你的文件太小(举个例子,小于1KB),那么它们就需要gzip,即时你已经将所有的东西都设置正确了。如果你gzip的话,你的主机不得不为每个小的文件进行不必要的gzip开销。
 
选择2Apache 2.0 2.0版本使用mod_deflate
如果你的主机运行的是Apache 2版本,那么你可以使用mod_deflate。尽管的它的名字没有带有gzip的信息,但是它也是使用gzip进行压缩。为了设置mod_deflate,需要在.htaccess文件中添加下面的信息:
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-javascript application/json
Header append Vary Accept-Encoding
0
相关文章