我想问一些好的做法。我有一个 Node.js (Express) Web 服务器和 socket.io 推送服务器(以防技术问题)。我可以将它们都变成一个应用程序,但我希望它们分开(如果需要,它们可以相互通信)。这样做有两个原因:
- 将更容易管理、调试和开发应用程序;
- 扩展应用程序会容易得多。如有必要,我可以添加另一个推送服务器或 Web 服务器实例;
这至少是我所相信的。唯一的问题是,当客户端连接到单独的 socket.io 服务器时,它不会发送 cookie(不同的端口,跨域策略)。
我想出的解决方法是在前面放置一个反向代理(也是用 Node.js 编写的)并检查我们正在处理的请求类型并将其发送到 Web 服务器或相应地推送服务器。太好了,现在我们在 Web 服务器和推送服务器中都有 cookie。反向代理可以是负载均衡器,这是一个额外的好处。
这对我来说是个好主意。你觉得这个设计怎么样?也许还有其他解决 cookie 问题的方法?