ホームページ >運用・保守 >Nginx >nginxでphpフラッシュが失敗する問題を解決する方法

nginxでphpフラッシュが失敗する問題を解決する方法

王林
王林転載
2020-11-11 15:43:432029ブラウズ

nginxでphpフラッシュが失敗する問題を解決する方法

問題

PHPの一行ずつ出力をデバッグしていたら、ob_flushとflushの両方が失敗していることが分かりましたが、php.iniの設定で大体判断できます。 phpinfo.no​​rmal を介して。

(学習ビデオ共有: php ビデオチュートリアル)

解決策

Nginx を改めて見てみると、Nginx には次のような設定があることがわかりました。

fastcgi_buffer_size 128k;
fastcgi_buffers 8 128k;

問題は基本的に見つかりました。Nginx は PHP によって出力された情報をバッファリングします。それが 128k に達すると、バッファー データはクライアントに送信されます。次に、最初に次のようにバッファー サイズを減らす必要があります。

fastcgi_buffer_size 4k;
fastcgi_buffers 8 4k;

そして、gzip

gzip off;

次に、php で、ob_flush とフラッシュの前に、4K に達するコンテンツを出力します。例:

echo str_repeat(‘ ‘, 1024*4);

この時点で、PHP必要なコンテンツは、ob_flush を通じて 1 行ずつ出力され、通常どおりフラッシュされます。

関連する推奨事項: nginx チュートリアル

以上がnginxでphpフラッシュが失敗する問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はgxlcms.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。