尝试使用AWS EC2 node.js应用通过AWS ELB与AWS Mongo Linux实例进行通信

时间:2019-09-09 09:28:49

标签: mongodb aws-elb

我有2个带有node.js应用程序的AWS EC2实例。开箱即用,它们带有一个运行良好的本地mongod实例。鉴于应用程序的重要性,我决定启动2个EC2前端(节点js),以使用AWS ELB与另一个可用性区域中的mongo db进行通信。

全部3个节点之间存在完整的IP通信/ 27017连接。

在mongo服务器上仅使用1台服务器时,它可以正常工作。将两个前端服务器都添加到ELB目标组中时,会出现504网关随机错误。

从组中删除服务器可解决此问题。

关于我应该寻找什么的任何建议?

关于node.js服务器连接到mongo的方式,有一个config.json文件,该文件仅指出所需的IP和数据库名称。

谢谢!

2 个答案:

答案 0 :(得分:0)

AWS Load Balancer使用“循环”机制来路由用户的请求。您的应用程序是否可以控制用户会话?如果不是,那么您的第一个请求到达服务器1,那么对服务器2的第二个请求(对第一个请求没有任何信息)可能会导致错误。这就解释了为什么只有一台服务器时它可以正常工作

答案 1 :(得分:0)

服务器使用redis(应用服务器)和以下组件:

Node.js - Server-side Javascript-framework
Express.js - Web application framework for Node.js
Nginx - Web server & reverse proxy
MongoDB - NoSQL database
redis - Session Manager & data structure server
Socket.IO - Bi-directional communication between web clients and servers