前段时间写了一个开启IIS的Gzip功能的批处理文件
,在很多的
服务器上(不下于50台)上都很轻松的通过该批处理文件成功开启了IIS的Gzip功能
,从而让用户感受更快的速度,但有一台
服务器就没有成功,找过原因,未找到,今天突然想到一个方面,赶紧的动手尝试,果然原因就在于此
。
Gzip是一种流行的文件压缩算法,现在的应用十分广泛,当应用Gzip压缩到一个纯文本文件时,效果是非常明显的,大约可以减少70%以上的文件大小
。使用Gzip压缩算法来对网页内容进行压缩后再传输到客户端浏览器。这样经过压缩后实际上降低了网络传输的字节数,最明显的好处就是可以加快网页加载的速度,除了节省流量,改善用户的浏览体验外,还有一个潜在的好处是Gzip与
搜索引擎的抓取工具有着更好的关系。例如Google就可以通过直接读取gzip文件来比普通手工抓取更快地检索网页。这些好处并不仅仅限于静态内容,ASP、ASPX、
PHP动态页面和其他动态生成的内容均可以通过使用Gzip压缩,加上其他的性能调整机制和相应的服务器端缓存规则,这可以大大提高网站的性能。
先说明下服务器环境:Windows2003+IIS+
PHP+ISAPI Rewrite,检查iis的配置内容没有任何问题,但查询HTTP状态都是未开启Gzip状态,今天在访问服务器上一个Discuz论坛的时候底部一行信息: Gzip On。灵光一闪,难道是PHP自带的的Gzip与IIS的冲突?赶紧动手测试,打开PHP配置文件,将php_zip.dll的extension关闭,重启IIS。
上面的操作完成后,检测状态,现在已经是开启了Gzip的状态了。原来那个Gzip开启的批处理文件没有任何问题,问题在于PHP也开启了Gzip,IIS再开的时候冲突了。也说明了另外一个问题,PHP.ini的处理优先级高于Metabase.xml。