如何从PHP禁用nginx gzip?

我打算阻止nginx从gzip压缩单个PHP请求.我已经有以下内容:

    @ini_set('zlib.output_compression','Off');
    @ini_set('implicit_flush',1);
    header('X-Accel-Buffering: no');

根据我发现的所有信息,仅X-Accel-Buffering应当禁用gzip,但是当我从浏览器加载此页面时,仍然可以看到标题:

Content-Encoding:gzip

我正在使用php7-fpm,nginx 1.10.1,debian8

编辑:

我使用sleep()进行了测试以延迟输出.看起来像header(‘X-Accel-Buffering:no’);是有效的,但是它只能防止缓冲而不是gziping.我猜gzipping正在某种程度上作为流工作.

我可以看到,如果我输出1,000个字节,并在每个回显语句(每个字符有1个字符)上循环,则浏览器将收到大约11kb的字节.如果我回显str_rep x 1000,则发送的数据少得多.那里一定有一些开销.

无论如何,我都需要禁用gzip以便发送大量内容并测量下载时间.如果压缩了,我不知道实际的吞吐量是多少.

最佳答案
如果在答案中找到Content-Encoding标头,则Nginx将不会运行gzip过滤器.因此,您可以在后端设置Content-Encoding:Identity头,nginx会将其传递给客户端,而无需进行gzip处理.身份表示“未编码”.

dawei

【声明】:丽水站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

相关文章