发现这个版版主大人竟然是zms。于是发到这里了。
请各位达人不吝赐教。
最近新配了几台机器,换了squid3+nginx+resin的配置。发现了一个奇怪的问题。就是squid3不能很好的支持gzip。在firefox3下面,所有的静态页面都是gzip方式传输的。而在IE8下面,则有时gzip有时非gzip。确切来说tcp miss的情形下是gzip的,而tcp hit的情形下却是没有gzip。
ie8发送的请求如下:
GET /style/store/broker.css?date=1106 HTTP/1.1
Host: static.tofang.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.2; zh-CN; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
Accept: text/css,*/*;q=0.1
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer:
http://www.tofun.cn/store/Firefox3下面发送的请求如下。
GET /style/text.css?1130 HTTP/1.1
Accept: */*
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; QQPinyin 689; .NET CLR 1.1.4322; InfoPath.1; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Accept-Language: zh-cn
Referer:
http://static.tofun.cn/flash/menu_1.swfAccept-Encoding: gzip, deflate
Host: static.tofang.cn
Connection: Keep-Alive
用curl/wget一项一项替换请求的header之后,发现是IE8发送的“Accept-Encoding: gzip, deflate”中间包含了空格,而firefox不包含空格
结果就是这个差别使得squid在ie8下面squid有时候不能返回gzip格式的内容,最后我google了一通,发现Windtear曾经在squid2.6的时候就发现了这个问题,并提供了patch。
不知道为何squid3依然存在这个问题,而我搜遍了squid3.21版本的源码,也没有找到类似的代码段。有没有人遇到过这个问题?还是我的配置写的有问题。
--
FROM 114.243.99.*