项目使用Nginx+Resin发布的,其中有个flv视频,很奇怪的是在IE7、8、9、Firefox、Chrome下均能正常播放,唯有在IE6下有段404的提示信息,状况见下图:
在网上搜了下,说是ie6的BUG,内容为:
前端时间客户端minipage页面调用js循环调用图片,该图始终不cache,始终循环调用,导致各地cdn节点链接数过大。弄了两天,很是不爽。今天网上soso偶得一帖,贴上以备不时之需。
其实这个Bug是由分两种情况的:
1. 和Nginx无关,是针对CSS背景图片的。一般用户不会碰到,更多的时候是开发者将自己的IE的缓存策略从默认的”自动”改为“每次访问都查询”才发生 的。特点是鼠标一旦浮动到有背景图片的地方,IE会不顾已经缓存的图片,自行去服务器再次获取图片,造成图片短暂消失。这个问题比较简单,可以通过以下脚 本解决。
2. 但是实际上更常见的原因是Nginx上打开了Gzip压缩功能。这个是IE6的著名Bug,早在2002年就被人详细讨论过了,在IE7中有所改进,但微 软永远也不会去修复IE6了。原因是Nginx对于启用了Gzip的http上下文,即使你在之前的配置文件里声明过 gzip_disable “MSIE [1-6]/.”,Nginx不再对IE6用Gzip压缩了,但是送出的http报头却仍然采用了和Gzip压缩数据包相匹配的Vary: Accept-Encoding。IE6不认识这个报头,IE6对除了Vary: User-Agent的报头外,都不查询缓存,直接去服务器申请。更绝得是,不是使用查询文件是否更新,而是强行要求一份完整文件。(IE7总算客气了 点,这是后先查一下更新,减轻了这个bug的影响)。
原文地址:http://www.5ivpn.com/post/23/
于是我将gzip给关闭,没想到还真的可以,问题解决!
关闭代码: gzip off;