php - 如何从 PHP 禁用 nginx gzip?

标签 php nginx gzip

我很想阻止 nginx 压缩单个 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'); 正在工作,但它只阻止缓冲而不是 gzipping。我猜 gzipping 以某种方式作为流工作。

我可以看到,如果我输出 1,000 个字节,循环遍历每个 1 个字符的 echo 语句,浏览器会收到大约 11kb。如果我回显 str_rep x 1000,那么发送的数据就会少得多。那里一定有一些开销。

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

最佳答案

如果在答案中找到 Content-Encoding header ,Nginx 将不会运行 gzip 过滤器。因此,您可以在后端设置 Content-Encoding: identity header ,nginx 将在不进行 gzip 处理的情况下将其传递给客户端。 identity 表示“未编码”。

关于php - 如何从 PHP 禁用 nginx gzip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41086260/

相关文章:

php - 如何检查链接(a)提交按钮是否被点击

php - jQuery 函数动态加载更多数据

configuration - 将位置重写为 nginx 中的子域

linux - Nginx .htaccess 在 Linux 服务器上不起作用

macos - 无法在 Mac OS X 上的 Go 1.5 中 gzip 超过 32768 字节的 slice

php - 在没有 htaccess 或 mod_rewrite 的情况下解析 SEO 友好的 url

PHP cookie 随机取消设置

nginx - 无法配置Kubernetes Nginx入口基本身份验证

ssl - 如何将 gzip 与 SSL 或任何替代方案结合使用?

c++ - zlib inflate 返回缓冲区错误