我想询问一些好的做法。我有一个Node.js(Express)Web服务器和socket.io推送服务器(如果技术很重要)。我可以把它们都变成一个应用程序,但我希望它们分开(如果需要,它们可以相互通信)。这样做有两个原因:
这至少是我所相信的。唯一的问题是,当客户端连接到单独的socket.io服务器时,它将不会发送cookie(不同的端口,跨域策略)。
我提出的解决方法是在前面放置一个反向代理(也用Node.js编写)并检查我们正在处理的请求类型,并将其发送到Web服务器或相应地推送服务器。好的,现在我们在Web服务器和推送服务器中都有cookie。反向代理可以是负载均衡器,这是额外的奖励。
对我来说这似乎是一个好主意。你怎么看待这个设计?也许还有其他针对cookie问题的解决方法吗?
答案 0 :(得分:1)
我最近做了类似的事情,我们最初使用了node.js反向代理但遇到了可靠性/可伸缩性问题。我们发现服务静态文件和代理请求最好留给nginx。 haproxy也是独立代理的一种非常可行的解决方案。