反向代理websockets(SSL),通过Stunnel到许多node.js应用程序的流量

时间:2012-10-30 15:37:32

标签: node.js ssl proxy nginx websocket

我正在寻找一些想法......

我有一系列强大的node.js个应用程序需要交付给特定用户(后验证),几乎没有文件服务,只有索引的初始交付。其余的通信都是通过socket.io完成的。

  • ClientA(登录)需要连接到应用程序,例如:90001
  • ClientB(登录):90002
  • ClientC(登录)on:90003

*所有HTTP / 1.1必须是安全的

我尝试了一些配置:

  • 安全通道/清漆/ nginx的
  • 安全通道/ HAProxy的
  • 安全通道/ nginx的

我在想一个好方法是以某种方式使用redis来存储会话并对cookie进行验证,但这很可能是通过(使用节点)在前端公开node.js来完成的。

的问题:

使用node-http-proxy作为前片有什么风险?

这是我认为可能的事情(有一件“安全地”重定向流量并管理特定会话到许多独立/专属后端。)

我知道nginx 1.3(在开发中)是支持ws,这值得坚持吗?

有没有人对yao的tcp_proxy nginx模块(可靠性/可扩展性)有过充分的经验?

1 个答案:

答案 0 :(得分:0)

我不能说我以前做过这个,但我可以提供一些想法:

1个节点认证服务器,它获取登录详细信息并设置特定于用户应连接的服务器的cookie。然后它重定向到索引页面,此时haproxy可以根据cookie指示请求。请参阅此问题https://serverfault.com/questions/75385/is-there-a-way-to-configure-haproxy-to-send-traffic-based-on-a-cookie

或者,您可以在所有服务器上进行上述身份验证,而不只是一个。如果没有相关的cookie标头,则必须将Haproxy配置为在所有节点之间进行平衡。每个节点都会执行set-cookie +重定向,后续请求应该在特定节点实例上结束。

bts,haproxy 1.5 dev现在内置了对SSL的支持,因此不再需要stunnel。