如何使用彗星(在nginx的禁用输出缓冲,它工作在正常的Apache而不是nginx的)?(How

2019-10-17 05:58发布

我在我的网站有一个彗星推动对话脚本

我的服务器配置NGINX与PHP-FPM,我也有Apache的安装不同的端口上。

当我尝试运行在Apache聊天剧本,我做的洪水缓冲(我的输出缓冲大小为1 KB),当我用1024字淹没它,它会自动刷新这是在Apache中。

但是在nginx的事实并非如此。

我的代码是非常相似,这

<?php

// this is to fill the buffer and start output; and it works on apache normally
echo str_repeat(" ",1024); 


while($condition){

  // Some code here...
  $messages = getMessagesFromDatabase();

 if($messages){
  echo "output";   // output works on apache but not nginx
  flush();
  ob_flush();
 }

 usleep(500000); // 0.5 Second

}


?>

在我的nginx的配置我原来的gzip关闭,proxy_buffering关,

有没有办法避免nginx的缓冲,我在这里搜索了很多计算器,但我不能达到解决

并且请注意:我并不想关闭缓冲在我所有的PHP配置的我只是想这在聊天脚本发生

Answer 1:

升级你的nginx服务器{}配置:

fastcgi_keep_conn on; # < solution

proxy_buffering off;
gzip off;


文章来源: How to use comet (disable output buffering in nginx, it works in apache normally but not nginx)?