IIS开启Gzip失败的原因之一:冲突

前段时间写了一个开启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。

未经允许不得转载:聚友 » IIS开启Gzip失败的原因之一:冲突

赞 (0) 打赏

评论 1

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. MStudio遇到一样的问题.手动开启的gzip
    检查了下 php_zip.dll 是关闭的,检测gzip没开启...
    求解 回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏