我创build了一个简单的聊天应用程序。 在Ubuntu 11.10上安装了Nginx,通过fast-cgi安装了PHP。 为了获得性能的感觉,我做了一个简单的PHP文件,睡10秒,然后报告时间。 用几个浏览器实例(不同的浏览器,不同的机器)调用这个响应后,响应在大约10个实例后变得缓慢,比预期的要less得多(希望直到成百上千都看不到任何恶化,尽pipe使用手动浏览器testing是不实际的) 。
我是一个Web开发,而不是系统pipe理员,也许我的深度? 不寻找最佳的解决scheme(search揭示Nginx应该能够处理10K每个核心),但几百将是伟大的。
还有Nginx的推送stream模块,但我不知道如何安装它,似乎又一个技术来抓住。 应该基本开箱Nginx能够应付我的期望,即100 +长期连接使用PHP?
将查询string重写为path参数
如何故意在Python / Flask中导致400错误请求?
Nginx:在URL重写中转义#
SSL_add0_chain_cert和SSL_add1_chain_cert的使用区别?
将使用%(QUERY_STRING)的Mod重写规则转换为Nginx重写格式?
/ usr / bin / env:ruby_executable_hooks:没有这样的文件或目录
在Python中跟踪系统和实时状态分析
HSTS和Chrome
推送流模块将在技术上做你想做的事情 – 设置一个url,在这个url中你可以推送更新,然后可以通过客户端代码中的pubsub进行轮询。
为了安装推送流模块,您需要获取最新的Nginx源代码,获取该模块的源代码,编译该模块,然后使用新模块源的路径重新编译您的Nginx 作为标志之一 。 看看我是怎么做到的,在这里:
如果你的Nginx服务器的重启没有在当前实例列出的标志中列出那个模块,那么你在重编译期间没有正确地覆盖Nginx文件。 确保包含--sbin-path标志以确保覆盖到正确的目录。
一旦确认它已经安装并运行在Nginx中,请按照@baba提供的步骤进行操作
您需要配置用于订阅和发布的端点。 将以下内容添加到您的Nginx.conf文件中:
# internal publish endpoint (keep it private / protected) location /publish { set $push_channel_id $arg_id; #/?id=239aff3 or somesuch push_publisher; push_store_messages on; # enable message queueing push_message_timeout 2h; # messages expire after 2 hours,set to 0 to never expire push_message_buffer_length 10; # store 10 messages } # public long-polling endpoint location /subscribe { push_subscriber; # how multiple listener requests to the same channel id are handled # - last: only the most recent listener request is kept,409 for others. # - first: only the oldest listener request is kept,409 for others. # - broadcast: any number of listener requests may be long-polling. push_subscriber_concurrency broadcast; set $push_channel_id $arg_id; default_type text/plain; }
请参阅文档
http://www.brentsowers.com/2011/06/http-long-polling-aka-comet-with-Nginx.html
http://www.igvita.com/2009/10/21/Nginx-comet-low-latency-server-push/
如果你想把它转换成一个完整的COMET服务器,你可以使用
https://github.com/slact/Nginx_http_push_module
你能介绍一下你如何配置Nginx到目前为止? 以及你对你的配置有什么想法? 在我看来,最重要的配置应该是工作进程,工作者连接,open_file_cache,并在这里保持活力。 这是一个很好的写作,涵盖所有这些:
http://blog.martinfjordvald.com/2011/04/optimizing-Nginx-for-high-traffic-loads/
你也可以看看更多的指令:
http://wiki.Nginx.org/HttpCoremodulee
我之前用2和10240配置了工作进程和工作连接,keepalives> 20.希望对你有所帮助。
**哦,我也忘了提及 – 也许Opcode缓存可以为你工作? 尝试安装PHP-APC。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。