您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

如何对Apache做Web压缩

添加时间:2013-5-15 23:08:43  添加: 思海网络 

  目前很多企业都在网络上开展业务,处理的信息容量很大,有时不得不需要进行Web压缩。我给大家提供一个方案,不改变页面风格,但是减小Web浏览的传输数据量。

  我的Web服务器是Apache,采用的压缩工具是免费软件mod_gzip,通过流量测试软件BWMeter来证实压缩比例。用mod_gzip压缩纯文本内容平均可压缩至原大小的40%以下,从而可节约60%以上的数据传输。虽然数据压缩会导致Web服务器的CPU占用率略微上升,但是可以节约大量网络I/O,提升用户浏览速度。我将一个大小为8KB的HTML文本从未经过压缩的10.4KB流量(如图1),压缩变成了5.9KB的流量(如图2)。

  mod_gzip的工作原理

  mod_gzip的工作原理是,当客户端请求浏览某网页后,Apache服务器将所请求的网页文件进行压缩,具体压缩是利用标准的zlib的压缩。服务器将压缩的文件下发给客户端浏览器,由客户端的浏览器负责解压缩并浏览,所以解压效果和用户的浏览器有一定关系。经过测试,它在IE 4.0到IE 6.0上,以及Netscape 4.5到Netscape 6.0上都运行得很好。

  mod_gzip的安装

  1.下载源程序

  可以从http://sourceforge.net/下载mod_gzip的源程序,使用源程序编译生成Apache的模块(Module)。

  2.解压源程序

tar -zxvf mod_gzip-2.0.40.tar.gz

  3.编译

  进入源程序所在的目录进行编译,生成相应的动态链接库。编译需要指定参数APXS的相应位置:

make APXS=/apache/httpd/bin/apxs

  将mod_zip安装到Apache服务器中,其中也要指定APXS的具体位置:

make install APXS=/apache/httpd/bin/apxs

  4.调用mod_gzip模块

  在Apache的配置文件httpd.conf中增加LoadModule参数,调用mod_gzip模块。

LoadModule gzip_module modules/mod_gzip.so

  5.测试

  运行以下命令测试安装是否成功:

/apache/bin/apachectl configtest

  如果出现“Syntax OK”,则说明Apache中已经成功安装上mod_gzip的压缩模块了。

  Apache中关于mod_gzip的配置

  修改Apache的配置文件httpd.conf:

  1.增加mod_gzip模块的调用

LoadModule gzip_module modules/mod_gzip.so

  2.开启压缩功能

mod_gzip_on Yes

  3.设置压缩文件的最小值

mod_gzip_minimum_file_size 1000

  4.设定压缩文件的最大值

mod_gzip_maximum_file_size 300000

  5.设定压缩文件的临时目录

mod_gzip_temp_dir /tmp/mod_gzip

  6.设定是否保持压缩的工作临时文件

mod_gzip_keep_workfiles No

  7.设定各种需要压缩的文件及扩展名

mod_gzip_item_include file .htm$
mod_gzip_item_include file .html$
mod_gzip_item_include file .php$
mod_gzip_item_include file .php3$
mod_gzip_item_include mime text/.*
mod_gzip_item_include mime httpd/unix-directory

常见问题及解决方法

  1.解决调用标准zlib问题

  如果在编译mod_gzip的时候没有指定zlib类库的具体位置,那么它默认路径就是/usr/local/lib,当你的zlib不在这个目录下面的时候,就会报如下错误提示:

Cannot load /httpd/modules/mod_gzip.so
into server/httpd/modules/mod_gzip.so:
undefined symbol: top_module (或者是deflate)

  解决方法就是,在编译mod_gzip的时候,编辑Makefile文件增加两个参数,分别指向zlib的存放目录:

INC=-I/usr/include
LIB=-lz -L/usr/lib

  编辑ld.so.conf文件,在其中增加存放zlib标准类库的具体目录,然后运行ldconfig。

  这样更改以后,Apache就不会上述出现问题了。

  2.Apache中jk2模块有可能和mod_gzip冲突

  这种现象会出现在Apache2、jk2及mod_gzip2.0.40配合的时候。最简单的解决办法是,改变应用环境的版本,使用Apache1.3、jk及mod_gzip1.3配合就会避免产生这种冲突。

  3.实现对servlet的压缩

  我们在httpd.conf文件中增加相应的压缩配置文件,就可以实现对servlet进行压缩了。

mod_gzip_item_include handler jakarta-servlet
mod_gzip_item_include handler jakarta-servlet$
mod_gzip_item_include handler ^jakarta-servlet
mod_gzip_item_include handler ^jakarta-servlet$
mod_gzip_item_include handler ^^jakarta-servlet$

  希望通过上述讲解,读者可以轻松地构造压缩的Apache服务器,更好地利用网络资源。

关键字:Apache、网络、服务器

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站