Nginx+PHP-FPMの環境において、PHPコードからflush()を実行してもecho出力がすぐに表示されなかったので、対策を調べました。
結論
Nginx の設定ファイルにて fastcgi_buffering を off にします。
/etc/nginx/conf.d/default.conf 等を開き、次のような感じで設定します。
server {
...
location ~ \.php$ {
fastcgi_buffering off;
...
}
}
上記によって、Nginxがデータをバッファリングするのを防止することができます。
備考
WordPress環境で動作を確認しました。
参考サイト
http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffering
https://serverfault.com/questions/488767/how-do-i-enable-php-s-flush-with-nginxphp-fpm