![](/img/trans.png)
[英]OS X [Yosemite] : cannot run rails app using nginx + unicorn
[英]Rails using Websockets with Nginx and Unicorn?
我正在考虑使用Rails实现国际象棋(需要websockets),并在生产部署中使用Nginx作为一堆Unicorn进程的反向代理。
在考虑如何完成这项工作时,我得到了以下问题:
据我所知,websockets是一个持久的连接。 因为一切都通过反向代理Nginx,Unicorn工作进程究竟会如何维护到客户端浏览器的websocket连接? Nginx会维护每个浏览器websocket连接到哪个Unicorn进程的状态并充当一种中介吗? 在Unicorn进程中保持持久的websocket连接会阻止整个工作进程吗?
是否有推荐的方法使用Rails实现国际象棋(使用websockets)?
连接Unicorn的同步处理和使用nginx的异步传递意味着nginx方面的一些逻辑对我来说似乎至少很尴尬。 最多 - 不可能。
有一个关于Private Pub gem的Railscast使用Thin webserver。 它更适合这项任务:它是异步的,它能够处理许多基于事件的IO的并发请求。 所以我建议你用Thin替换Unicorn或者并排安装Thin。
Puma网络服务器也可能是一个选项,但是,我无法提供更多信息。
nginx不会做websockets。 你确定你不能用AJAX做到这一点吗? 如果你真的需要推送功能,你可以尝试围绕Comet方法构建的东西: http : //en.wikipedia.org/wiki/Comet_ (programming)
Faye是实现铁轨彗星的一个非常好的宝石: http : //faye.jcoglan.com/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.