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

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

王林
リリース: 2020-11-11 15:43:43
転載
2046 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート