0

我在两个相同的主机但不同的端口之间弹跳时遇到问题。

所以我在 node.js 中使用模块弹性,我有两个应用程序托管在同一主机(本地主机)上,但侦听不同的端口。

我正在使用一个routes.json

{ "localhost" : 8001, "localhost" : 8000 }

并将弹跳点指向命令行。

但它似乎不适用于两个相同的主机?只有带端口的主机才能8000工作...

有什么解决办法吗?提前致谢

4

1 回答 1

1

我认为您误解了以下要点routes.json:哈希中的键代表虚拟主机名。

它可以与域名一起使用,例如:

{ "dev.xx.com" : 8001, "prod.xx.com" : 8000 }

基于文件的配置通过检查req.headers.host来决定将流量路由到哪里来工作。

您是否尝试在“localhost”上对同一应用程序的两个实例进行负载平衡?在这种情况下,您应该查看节点中内置的集群库:http ://nodejs.org/api/cluster.html

编辑:

cluster 和 bouncy 都可以用来为您负载平衡请求。如果使用 bouncy,则必须自己编写一个简单的循环方案(不能使用 routes.json),集群已内置。

bouncy 的另一个缺点(对于您的特定用例)是 bouncy 不会监控它反弹请求的服务器。您必须向 bouncy 添加逻辑以检查两个服务器是否都响应。同样,这一切都内置在集群中(它将服务器作为子进程运行,并且可以在它们出现故障时重新启动它们。)集群还可以用于使用新代码安全地重新启动子服务器而不会丢失任何请求。

总而言之:如果您想将 Bouncy 用作代理,Bouncy 是可以的,但集群是为了负载平衡而设计的。

于 2012-08-15T14:41:53.973 回答