【发布时间】:2019-03-29 13:53:50
【问题描述】:
- 我在实例 x 前面有一个 AWS 负载均衡器。
- 实例 x 运行于 端口 3000。实例 x 有两个页面,即 x/abc 和 x/zyx。
- 目前 x 的负载均衡器有两个监听器,即
80 -> 3000和8080 -> 3000。然后 ping/
要求:我有两台服务器要与实例 x 通信。服务器 1 想向 x/abc 和服务器 2 发送 http 请求 想向 x/zyx 发送 http 请求。
如何配置 LB 以路由到特定页面,例如x/abc 和 x/zyx? 或者以不同的方式编写我的请求?
代码 1:服务器 1 想要向 x/abc 发出 http 请求
// url is the DNS of load balancer... this should go to x/abc(?)
request({
url: "LoadBalancer-11122232.us-west-2.elb.amazonaws.com:80",
method: "POST",
json: true,
body: tweetJSON
}
代码 2:服务器 2 想要向 x/zyx 发出 http 请求
// url is the DNS of load balancer... this should go to x/abc
// DO I EVEN NEED TWO DIFFERENT PORT LISTENERS(?)
request({
url: "LoadBalancer-11122232.us-west-2.elb.amazonaws.com:8080",
method: "POST",
json: true,
body: tweetJSON
}
【问题讨论】:
-
感觉好像还有更多,我听到了这个问题,但想知道为什么?服务器 1 和服务器 2 有什么区别?不同端点/路由的意义是什么?是什么阻止您在调用 url 中指定路由?你最终想要达到什么结果?
-
好问题。仅供参考,这是我第一次使用 AWS LB 等。服务器 1 是推文流,服务器 2 是用户查询 UI,服务器 x 进行计算分析。因此,服务器 1 将查询发送到服务器 x(发送到 x/query-request),服务器 2 将推文流发送到服务器 x/stream-endpoint。所以服务器 x 是中间人(从一个服务器获取用户查询并从另一台服务器获取推文流),代码分为两条路线。但是我认为 ELB 管理两个节点服务器之间的流量......不是三路? - 所以设计错了? ...
-
现在我正在考虑这样做:服务器 1 将查询传送到服务器 2,服务器 2 将流发送到服务器 x。一个定向流量......所以像 1 -> 2 -> x 而不是 1 -> x ->
-
这取决于您和您的架构。你所做的并没有错。请参阅我的答案以获取解决方案,该解决方案向完整的 URL 发出请求,包括路由。
标签: node.js amazon-web-services httprequest amazon-elb