Nginx + PHP 最大输出限制

Nginx + PHP 最大输出限制

我安装了 php 5.5 (fpm) 和 nginx 1.10 (gzip 配置为 1)。在 ubuntu 上运行。

当我“回显”一个较大的输出(超过 2 mb)时,它会在 520 kb 左右突然停止。

但是当我在 php-cli 上运行相同的程序时,它可以毫无问题地将整个内容“回显”到终端上。

此外,通过 adminer 下载 mysql 转储时也会中途停止。我的意思是下载了不完整的文件(如果正确的总输出大于几 MB)。

如何解决这个问题?

我的程序没有任何问题。即使是一个足够长的简单 for 循环,输出 echo “hello world”,也会在特定字节限制处停止。

我不确定这个问题是由 nginx 端还是 php 端引起的。

答案1

尝试禁用缓冲:

fastcgi_buffering off;

默认情况下它是开启的。

这将使您在 PHP 中拥有更多的控制权,但请注意,以前未阻塞的刷新操作现在可能会阻塞。它还将克服 Nginx 可能遇到的任何缓冲问题——我敢打赌这就是问题所在。Nginx 的缓冲区高效但变化无常。

相关内容