如何配置nginx进行长轮询(和php)

我正在创建一个简单的聊天应用.已经在Ubuntu 11.10上安装了nginx,通过fast-cgi安装了
PHP.为了感受性能,我做了一个简单的PHP文件,睡眠时间为10秒,然后报告时间.用几个浏览器实例(不同的浏览器,不同的机器)调用它,响应在大约10个实例后变得迟缓,比预期少得多(希望在数百个之前看不到任何恶化,尽管使用手动浏览器测试这是不切实际的) .

我是一个web-dev,而不是sys-admin,可能不是我的深度?不寻找最佳解决方案(搜索显示nginx应该能够处理每个核心10k),但几百个会很棒.

还有Nginx推送流模块,但我无法弄清楚如何安装它,似乎还有另一种技术可以解决.基本开箱即用的nginx应该能够应付我的期望,即使用PHP进行100次长期连接吗?

最佳答案 推送流模块在技术上会按照您的意愿执行操作 – 设置一个URL,您可以在其中推送更新,然后可以通过客户端代码中的pubsub进行轮询.

为了安装推送流模块,您需要获取最新的nginx源代码,获取该模块的源代码,编译该代码,然后使用新模块源代码的路径重新编译nginx作为其中一个标志.看看我是怎么做到的,这里:

Recompiling nginx after using apt-get install nginx

如果重新启动nginx服务器未在当前实例的列出标志中列出该模块,则在重新编译期间未正确覆盖nginx文件.确保包含–sbin-path标志以确保覆盖正确的目录.

一旦确认它实际上已在nginx中安装并运行,请按照@baba提供的步骤操作

点赞