如果后端已经设置了“内容编码”标题,是否有任何聪明的方法来欺骗nginx停止gzip?
Nginx配置为从php fastcgi后端gzip输出。
这在99%的情况下效果很好。
除了罕见的情况,php会发送一个原始的gzip压缩文件并附加一个Content-Encoding: gzip
标题。
不幸的是,Nginx会继续前进并尝试再次对该内容进行gzip。
生成一个双content-encoding: gzip
content-encoding: gzip
标头和双重编码的gzipped正文。
大多数现代浏览器都可以处理这个问题,Firefox,Chrome。
IE8不能,Safari移动不能,旧的Safari 5 for Windows不能 - 相反,他们会显示乱码的gzip压缩内容,因为它合并内容编码标题,只解码gzipped主体一次。
感谢任何想法。
答案 0 :(得分:1)
在nginx.conf中适用的地方(某处应该有一个fastcgi_params文件):
fastcgi_param HTTP_ACCEPT_ENCODING "";
这将禁用后端的编码。
我希望Nginx在此之后仍会提供编码内容。 (我不确定)