我计划在 EC2 上设置一组运行Socket.io的 NodeJS 应用程序服务器,并且我想使用弹性负载均衡器在它们之间分散负载。我知道 ELB 不支持开箱即用的 Websocket,但我可以使用Scenario 2 中描述的设置。
但是,如博客文章中所述,我注意到此设置不提供会话关联或源 IP 信息:
我们不能在此设置中使用 Session Affinity 或 X-Forward 标头,因为 ELB 不解析 HTTP 消息,因此无法匹配 cookie 以确保 Session Affinity 或注入特殊的 X-Forward 标头。
Socket.io 在这些情况下还能工作吗?或者是否有另一种方法可以在具有 SSL 的负载均衡器后面拥有一组 Socket.io 应用程序服务器?
编辑:Tim Caswell 已经在这里谈论过这样做。有没有解释如何设置的帖子?这里再次没有会话粘性,但事情似乎运行良好。
顺便说一句,websockets 真的需要粘性会话吗?信息是作为新的和单独的请求传播的,还是只有一个请求+连接所有信息都在传播?