我正在阅读SockJS node server。文档说:
WebSockets通常不能很好地与代理和负载均衡器配合使用。在Nginx或Apache之后部署SockJS服务器可能会很痛苦。幸运的是,最新版本的优秀负载均衡器HAProxy能够代理WebSocket连接。我们建议将HAProxy作为前线负载均衡器,并使用它来分离来自普通HTTP数据的SockJS流量。
我很好奇是否有人可以在这种情况下扩展HAProxy正在解决的问题?具体做法是:
答案 0 :(得分:17)
1。为什么websockets不能很好地与代理和负载均衡器配合使用?
我建议你阅读Peter Lubbers在How HTML5 Web Sockets Interact With Proxy Servers上的这篇文章。它应该涵盖您需要了解的有关WebSocket和代理的所有内容 - 因此,负载均衡器。
2。为什么在Apache背后部署Sockjs服务器是痛苦的?
有a module for handling WebSocket connections但是目前Apache本身并不支持WebSocket,也不会很快基于这个在apache上提交的错误 - HTML5 Websocket implementation。建议是它实际上更适合模块模式。
所以,它“痛苦”只是因为它并不容易 - 没有官方支持,因此它没有社区使用它本来可能有的。
SockJS中可能还有其他的痛苦,它有基于HTTP的回退传输。因此,您需要代理WebSocket连接(使用apache-websocket模块)以及使用回退时的HTTP请求。
与此相关:2月的Nginx v1.3 was released,支持WebSocket。