У меня установлены php 5.5 (fpm) и nginx 1.10 (gzip настроен на 1). Работает на ubuntu.
Когда я "повторяю" большой вывод (более 2 мб), он резко останавливается примерно на 520 кб.
Но та же программа, когда я запускаю на php-cli, у нее нет проблем "повторение" "все это на терминал.
Кроме того, загрузка дампов mysql через adminer останавливается на полпути. Я имею в виду, что загружаются неполные файлы (если правильный общий вывод больше в пару МБ).
Как это исправить?
В моей программе все в порядке. Даже простой, достаточно длинный цикл, извергающий эхо «hello world», останавливается на определенном байтовом ограничении.
Я не уверен, вызвана ли эта проблема со стороны nginx или стороны php.
Попробуйте отключить буферизацию:
fastcgi_buffering off;
Она включена по умолчанию.
Это даст вам немного больше контроля изнутри PHP, но имейте в виду, что сброс операции, которые ранее не блокировались, теперь могут блокироваться. Это также решит любые проблемы с буферизацией, с которыми может столкнуться Nginx - я бы положил свои деньги на это. Буферы Nginx эффективны, но непостоянны.