如果后端已经设置了"内容编码"标头,有什么聪明的方法可以欺骗nginx停止gzip吗?
Nginx被配置为gzip来自php fastcgi后端的输出。
这在 99% 的情况下效果很好。
除非在极少数情况下,php 会发送一个原始的 gzip 文件并附加一个 Content-Encoding: gzip
标头。
不幸的是,Nginx将继续尝试第二次压缩该内容。
生成双content-encoding: gzip
content-encoding: gzip
标头和双编码的 gzip 正文。
大多数现代浏览器都可以处理这个问题,火狐,铬。
IE8不能,Safari移动不能,旧的Safari 5 for Windows不能 - 相反,它们将显示乱码的gzip内容,因为它合并了内容编码标头,并且只解码gzip正文一次。
感谢您的任何想法。
nginx.conf 中适用的某个地方(某处应该有一个fastcgi_params文件):
fastcgi_param HTTP_ACCEPT_ENCODING "";
这将禁用后端的编码。
我希望在此之后,Nginx仍然会提供编码内容。(我不确定)