在nginx后面部署deepstream.io

时间:2016-02-16 05:30:02

标签: javascript nginx deployment deepstream.io

我们在nginx层有kerberos身份验证,并希望作为反向代理连接到deepstream.io实例。从我阅读文档来看,它似乎将一个网络服务器放在deepstream.io实例之前会妨碍性能。此外,还有一个问题是谁负载平衡 - 通常是在nginx层,但deepstream.io似乎有内置功能,要求其他实例处理负载(通过messaging

使用Web服务器获得deepstream.io实例的最佳方法是什么?在Node中重新实现kerberos身份验证是非常重要的。

1 个答案:

答案 0 :(得分:1)

在Nginx,HAProxy等之后部署和加载平衡深度流是可能的(也是一个好主意)。但有几点需要注意:

engine.io,websockets和粘性会话

Deepstream使用engine.iosocket.io后面的传输层)连接到浏览器。

engine.io使用许多不同的传输机制,最明显的是长轮询(在需要发送数据之前保持http请求打开)和WebSockets。

对于长轮询,来自同一客户端的所有请求都路由到同一个深层服务器至关重要,因此请确保在nginx上游组中启用粘性/持久会话(只需添加ip_hash directive) 。对于websocket,重要的是the http update headers are forwarded

在您的深层节点之间同步数据/消息

确保您的深层节点通过缓存和消息总线相互连接。您可以选择缓存和消息传递系统,但最简单的方法是只使用Redis。看一下"什么是最简单的生产就绪设置?" https://deepstream.io/tutorials/connectors-and-deployment.html底部。

来自其他客户端的TCP连接(例如NodeJS) engine.io主要用于浏览器客户端,后端进程可以通过TCP直接连接。使用NginX完全可以实现负载平衡TCP连接,但需要extra stream group in your configuration.