我有php 5.5(fpm)和nginx 1.10安装(gzipconfiguration为1)。 在Ubuntu上运行。
当我“回响”一个大的输出(超过2 MB)时,它会在520 kb左右突然停止。
但是,当我运行在php-cli上的同样的程序,没有任何问题“回声”到terminal上的整个事情。
同时通过adminer下载mysql dump也会在中途停下来。 我的意思是不完整的文件被下载(如果在几个MB中正确的总输出更大)。
如何解决这个问题?
我的程序没有错。 即使是一个简单的足够长的循环喷出回声“你好世界”停止在特定的字节限制。
我不确定这个问题是由nginx侧还是php侧引起的。
尝试禁用缓冲:
fastcgi_buffering off;
这是默认的。
这会让你从PHP内部获得更多的控制权,但是请注意,先前没有阻止的刷新操作现在可能会被阻止。 它也将克服Nginx可能遇到的任何缓冲问题 – 我把我的钱放在这个问题上。 Nginx的缓冲区是有效的,但变幻莫测。