2016-11-07 68 views
0

我看了在同一服务器上的服务的几个网站的NodeJS很多帖子和教程:您启动每个站点1点节点的过程,并有ngnix流量分配根据请求,将与该域名。服务请求到几个点几个节点服务器进程

我正在调查是实现相同的结果的另一种方式:

拥有的NodeJS进程的服务器上的一个固定金额(假设4 - 1每核心),从网络的不确定量为请求提供服务网站(比方说10)。因此,每个节点进程将不会被绑定到特定的域:

请进来的DOMAIN1,ngnix将请求转发到任何的 第一个可用的节点处理。

请求进来为域2,ngnix将请求转发到任何的 第一个可用的节点处理。

通过这种方式,我可以不断向服务器添加域/站点,并让4节点进程丛林以不加区别的方式照顾它们。

是这种设置的可能吗?如果是,我应该如何组织它?

回答

0

据我理解你希望扩展在多个实例您的应用程序。让我们假设你要创建的4台机的群集,并让我们为它们命名:

  1. m1.your-domain.com
  2. m2.your-domain.com
  3. m3.your -domain.com
  4. m4.your-domain.com

让我们假设他们是4个核心实例,因此它是一个很好的做法,开始在每个实例应用程序的4个过程,让我们假设你的应用程序将运行在端口3000.

在每种情况下,您可以配置端口80上的nginx将流量转发到实例中的过程。然后你需要编排这4个实例,你可以使用负载平衡器来完成。您可以创建一台监听这个域名为lb.your-domain.com的计算机。您可以使用nginx创建负载平衡器,也可以使用其他服务,如aws elb。负载平衡器现在将被配置为通过使用循环法等算法将流量转发给您的实例。顺便说一句,您的负载平衡器将向公众开放,任何人都不能访问您的实例域,但只能访问特定的ips。