我正在尝试最终解决使用Nginx扩展大型NodeJS / MongoDB,实时,现代应用程序的最佳,最有效,可能低成本方法的问题。我没有这样的应用程序,它是严格的理论:我认为从一开始就学习并以正确的方式做到这一点很好,所以在将来成长的情况下很容易扩展。
下面是我设法弄清楚的“思考”模式。我试图考虑这种基础设施的最重要方面,但不包括应用程序本身(优化mongoDB查询等)。我认为该应用程序是通用的,因此它可能适合像Facebook一样的社交网络或类似IMDB的应用程序。
这个想法是,所有你需要做的 - 为了有效扩展 - 只需添加更多适当类型的服务器。架构如下(对于高分辨率img,click here):
我的问题是,如何添加更多(P)roxy服务器,所以在离线的情况下,这台机器有一些工作替代品?换句话说,是否可以在Bind中添加一些更多的记录A,并使其以某种方式支持websockets,与上游部分中的Nginx IP_HASH指令类似?在Bind级别使用负载均衡器(支持Websockets)来增强所有应用程序是完美的。
Bind9使用round-rubin来提供正确的A记录(如果很多),但它被定义为ciclic。
;; A records section
proxy1 IN A 192.168.1.1
proxy2 IN A 192.168.1.2
proxy3 IN A 192.168.1.3
proxy4 IN A 192.168.1.4
如何处理包含许多A记录服务器的websockets(使用nginx作为代理服务器)?
干杯!
麦克