Мне нужен долго работающий (7-8 секунд) php-скрипт для вывода частичных результатов пользователю по мере их обнаружения. Ранее я мог сделать это с более старой версией php-fpm и nginx, выполнив следующие действия:
- Использование этих настроек конфигурации в php:
@ini_set('output_buffering', 0);
@ini_set('implicit_flush', 1);
@ini_set('zlib.output_compression', 0);
@ob_end_clean();
set_time_limit(0);
header('X-Accel-Buffering: no');
и запуск ob_implicit_flush(1); flush();
каждый раз, когда мне нужно было выводить частичные результаты.
- Использование этих директив для nginx:
fastcgi_keep_conn on;
proxy_buffering off;
gzip off;
Однако при обновлении до PHP 7 и nginx 1.10.3 эти настройки больше не работают.
Я попытался добавить эти директивы в nginx:
fastcgi_max_temp_file_size 0;
fastcgi_store off;
fastcgi_buffering off;
Но, похоже, они тоже ничего не делают. Результаты по-прежнему буферизируются до тех пор, пока php-скрипт не завершит работу, а затем будут отправлены сразу.
Возможно ли то, что я прошу, все еще возможно?
(Я ценю предложения о том, что есть и другие способы отправки частичных результатов, которые не включают отключение буферов, но это не часть моего вопроса).