我有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和数据库名称。
谢谢!
答案 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