【问题标题】:Reverse proxy websockets (SSL), traffic through Stunnel to many node.js apps反向代理 websockets (SSL),通过 Stunnel 到许多 node.js 应用程序的流量
【发布时间】:2012-10-20 00:01:41
【问题描述】:

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

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

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

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

我尝试了一些配置:

  • stunnel/varnish/nginx
  • stunnel/haproxy
  • stunnel/nginx

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

问题:

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

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

我知道 nginx 1.3 (in dev) 是支持ws的,这值得坚持吗?

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

【问题讨论】:

    标签: node.js ssl proxy nginx websocket


    【解决方案1】:

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

    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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-16
      • 2018-04-17
      • 1970-01-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      相关资源
      最近更新 更多