我有一个非常奇怪的问题,我的Apache服务器(v2.2.16在Debian 6.0.5上运行)。 我有mod_deflate启用服务内容gzipped,并在铬,Firefox和即,它工作得很好,没有问题。 但是,在Safari中,只有部分内容被接收和解压缩。
另外需要注意的是:在Apache前面有一个Nginx服务器,代理内容 – 所以请求会打到nginx,代理到apache,然后回答nginx,然后发回。 但是,Apache服务器的gzip – gzip已经在nginx服务器上closures了。
该页面是http://www.fastaval.dk/aktiviteter/rollespil/
尝试使用W3Cvalidation器testing页面时,也出现了同样的问题: http ://validator.w3.org/check?uri= http% 3A%2F%2Fwww.fastaval.dk%2Faktiviteter%2Frollespil%2F&charset=%28detect+ 自动%29&doctype =内联&组= 0这也被打破,并build议gzipped内容不知何故被打破。
但是,如果我尝试下载gzip文件以手动解包gunzip,我得到一个完全有效的gzip文件。 我已经尝试使用wget和curl – 都输出一个有效的文件,没有问题。
为Safari禁用mod_deflatefunction,我该如何解决这个问题? 什么可能会导致这个问题?
这将取决于一些因素。
Chunked内容传输不会发送Content-Length:标头,因此代理在获知文件的大小之前必须先接收整个文件。 这可能会以各种方式干扰客户,就像您的Safaritesting一样。
我build议你tcpdump的一些stream量,看看是否有区别,例如,Safari和FF,标题明智。
如果它似乎纯粹在客户端,即Safari如何解释内容,那么您可能需要添加一个或两个BrowserMatch来跳过该客户端的泄漏。