我将 nginx 与 PHP-FPM 一起使用(安装了 APC)。
我需要 PHPflush()
才能工作。这可能吗?
到目前为止我尝试过的事情:
- 禁用所有输出缓冲
php.ini
,以及输出压缩。 gzip
在 nginx 的配置中禁用。- 将 nginx 的
fastcgi_*
缓冲设置和设置fastcgi_max_temp_file_size
为零。
我确定我一定遗漏了一些东西,因为我在这里和其他地方遇到过很多帖子,人们声称他们已经让它工作了,但我似乎没有运气。
我将 nginx 与 PHP-FPM 一起使用(安装了 APC)。
我需要 PHPflush()
才能工作。这可能吗?
到目前为止我尝试过的事情:
php.ini
,以及输出压缩。gzip
在 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
我想要同样的东西,事实证明这是可能的。在回显任何内容之前,您所需要的就是这个:
然后冲洗你像往常一样冲洗:
Nginx 似乎接受了已关闭的编码并且没有 gzip。
这是可能的。把它放在你站点配置文件的服务器部分:
把它放在 php.ini 中
当心。禁用这些缓冲区可能会对性能产生严重影响。
有可能,看看这个答案。
我自己尝试过,它有效。
升级你的 nginx 服务器 {} 配置: