2016-02-16 49 views
0

我們在我們的nginx層有kerberos認證,並且想要連接到deepstream.io實例作爲反向代理。從我閱讀的文檔中,看起來像在deepstream.io實例之前放置一個Web服務器會妨礙性能。此外,還有誰負載平衡問題 - 通常是在nginx層,但deepstream.io似乎有內置的功能,要求其他實例來處理負載(通過messaging在nginx後面部署deepstream.io

什麼是最好的方式來讓deepstream.io實例在Web服務器上運行良好?在Node中重新實現kerberos認證是非常重要的。

回答

1

這是可能的(並且是一個好主意)部署和Nginx的背後,HAProxy的等LOADBALANCE deepstream有幾件事情需要注意,雖然:

engine.io,的WebSockets和粘性會話

Deepstream使用engine.iosocket.io後面的傳輸層)連接到瀏覽器。

engine.io使用許多不同的傳輸機制,最顯着的是長輪詢(保持http請求打開直到數據需要發送)和WebSocket。

對於長輪詢來說,將來自同一客戶端的所有請求路由到同一個深度服務器是至關重要的,因此請確保您的nginx上游組中啓用了粘滯/永久會話(只需添加ip_hash directive)。對於websocket,重要的是the http update headers are forwarded。您的deepstream節點

之間

同步數據/消息確保您deepstream節點被由高速緩存和消息總線彼此,兩者都連接。您可以選擇緩存和郵件系統,但最簡單的方法是使用Redis。看看上的部分「什麼是最簡單的生產就緒設置?」https://deepstream.io/tutorials/connectors-and-deployment.html的底部。從 engine.io主要用於瀏覽器客戶端等客戶端(例如的NodeJS)

TCP連接,後端處理可以直接通過TCP連接。負載平衡TCP連接完全可以與NginX,但需要一個extra stream group in your configuration.