不知道 大家有没 这样的经历,用 TOMCAT做应用服务器的时候,很多图片在页面上显示的时候,按右键-点属性,显示图片格式为.JPG .GIF,但是如果按 图片另存为的时候,保存格式只有BMP,而且文件尺寸很大(BMP是最大的保存图片类型),为了这个问题,老板烦了我几天了,公司里的人也没办法。
而且换了 APACHE 当图片处理服务器,就是为了提高图片的下载速度。但是换了以后没觉得图片下载速度有多大的提升,反而觉得稳定性没以前好了,有时候图片会下载失败 ,但图片又明明存在,刷新后显示正常 。
后来认真研究了这个问题,发现是由于文件没被完全下载的缘故。
因为如果网页图片没经过处理,在传输过程中,在本地 缓存保存的是 BMP格式,在下载完以后再转换成 原来的文件格式,这个和应用程序没什么关系,并且这样对应用服务器端比较大,有的时候会出现图片下载失败的现象。
怎么办呢,我无意中找到了APACHE的 DEFLATE 功能 ,HTTP 文件压缩功能 。
这个组建是APACHE 2的 内带组件,一般配置的时候就已经安装好。如果您没安装,请按照下面的步骤 .
cd bin
vi apr-1-config
修改前
LDFLAGS=""
修改后
LDFLAGS="-lz"
:wq
apxs -iac /webservice/server/httpd/modules/filters/mod_deflate.c
设置完成后 进入 CONF目录
vi httpd.conf
在最后添加
<IfModule mod_deflate.c>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log.log deflate
</IfModule>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
CustomLog logs/deflate_log.log deflate
</IfModule>
然后 在 LOGS目录下 ,就会出现deflate。log 会出现文件压缩日志,效果很不错 ,浏览速度有了很大的提升。并且 BMP 问题基本解决