4

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

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

  • ClientA(登录)需要连接到应用程序让我们说:90001
  • ClientB(登录):90002
  • ClientC(登录):90003

*所有 HTTP/1.1 ws 都需要是安全的

我尝试了一些配置:

  • stunnel/清漆/nginx
  • stunnel/haproxy
  • 隧道/nginx

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

问题:

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

这是我应该认为可能的吗(拥有一个“安全”重定向ws流量并将特定会话管理到许多独立/专有后端的部分)。

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

tcp_proxy有没有人对 yao 的nginx 模块(可靠性/可扩展性)有任何全面的经验?

4

1 回答 1

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。

于 2012-12-11T02:22:12.310 回答