解决Nginx在IE6下部分视频、图片不Cache的Bug

项目使用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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值