Php
如何使用 nginx+PHP-FPM 啟用 PHP 的 flush()?
我正在使用帶有 PHP-FPM 的 nginx(安裝了 APC)。
我需要 PHP
flush()
才能工作。這可能嗎?到目前為止我嘗試過的事情:
- 禁用 中的所有輸出緩衝
php.ini
以及輸出壓縮。gzip
在 nginx 的配置中禁用。- 將 nginx 的
fastcgi_*
緩衝設置和設置fastcgi_max_temp_file_size
為零。我敢肯定我一定錯過了一些東西,因為我在這里和其他地方遇到過很多文章,人們聲稱他們已經讓它工作了,但我似乎沒有運氣。
可悲的是,使用 nginx 是不可能的。fastcgi 的 nginx 實現需要一個緩衝區,即使你將緩衝指令設置為 0,它只會導致它緩衝到磁碟而不是記憶體。
您必須找出一些替代系統,例如可以輪詢狀態的隊列。(例如想想 ala gearman)
**編輯:**這是可能的:http: //nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffering
我想要同樣的東西,結果證明這是可能的。在任何內容被回顯之前,您所需要的就是這個:
header('Content-Encoding: none;');
然後沖洗你做沖洗正常:
ob_end_flush(); flush();
Nginx 似乎接受了已關閉的編碼並且沒有 gzip。