devise实时Web应用程序(Node.js和socket.io)

我想问一些好的做法。 我有一个Node.js(Express)Web服务器和socket.io推送服务器(以防技术问题)。 我可以把他们两个变成一个应用程序,但我希望他们分开(如果需要,他们可以相互沟通)。 有两个原因可以做到这一点:

  1. 这将是更容易pipe理,debugging和开发应用程序;
  2. 扩展应用程序会容易得多。 如果需要,我可以只添加推送服务器或Web服务器的另一个实例;

这至less是我相信的。 唯一的问题是,当客户端连接到独立的socket.io服务器,那么它不会发送cookie(不同的端口,跨域策略)。

我提出的解决方法是在前面放置一个反向代理(用Node.js编写),并检查我们正在处理的请求是什么types,并将其发送到Web服务器或推送服务器。 太棒了,现在我们在networking服务器和推送服务器上都有cookies。 反向代理可以是负载均衡器,这是额外的好处。

这对我来说是个好主意。 你对这个devise有什么看法? 也许任何其他解决方法cookie的问题?

我最近做了一些相似的事情,我们最初使用了一个node.js反向代理,但遇到了可靠性/可伸缩性问题。 我们发现服务静态文件和代理请求最好留给nginx。 对于独立代理,haproxy也是一个非常可行的解决scheme。

HAProxy的
Nginx作为反向代理