我遇到了在两个相同主机但不同端口之间弹跳的问题。
所以我在node.js中使用模块bouncy,我在同一主机(localhost)上有两个应用程序主机,但是监听不同的端口。
我正在使用routes.json
{
"localhost" : 8001,
"localhost" : 8000
}
并指出命令行的弹性。
但似乎它不适用于两个相同的主机?只有端口为8000
的主机才有效...
任何解决方案? 提前谢谢
答案 0 :(得分:1)
我认为你误解了routes.json
的观点:哈希中的键表示虚拟主机名。
它可以使用域名,例如:
{ "dev.xx.com" : 8001, "prod.xx.com" : 8000 }
基于文件的配置的工作原理是检查req.headers.host
以确定将流量路由到何处。
您是否尝试在“localhost”上对同一应用的两个实例进行负载均衡?在这种情况下,您应该查看内置于节点的集群库:http://nodejs.org/api/cluster.html
编辑:
群集和弹性都可用于为您加载平衡请求。如果你使用有弹性,你必须自己编写一个简单的循环方案(不能使用routes.json),集群内置它。
弹性的另一个缺点(对于您的特定用例)是弹性不会监视它反弹请求的服务器。您必须将逻辑添加到bouncy以检查两个服务器是否都是响应式的。同样,这些都内置在集群中(它将服务器作为子进程运行,如果它们发生故障,可以重新启动它们。)集群还可以用于使用新代码安全地重新启动子服务器,而不会丢失任何请求。
总而言之:如果你想将它用作代理,那么Bouncy就可以,但群集可以实现负载均衡。