【发布时间】:2018-01-22 14:23:15
【问题描述】:
我有 2 个 EC2 实例,第一个是节点 js 应用服务器,第二个是 mongo db 服务器。我无法从应用服务器或其他任何地方访问数据库服务器。
我可以从 mongodb 服务器 ping 应用服务器(私有和公共 IP 地址),但无法从应用服务器 ping mongodb 服务器(私有和公共 IP 地址)。我可以 ssh 进入两者。
mongodb 服务器的 mongod 配置文件的网络字段为:
network
bind: [0.0.0.0, private_ip_of_instance]
无论如何,我相信这不是问题所在。我可以从实例中访问我的 mongo DB 并查询它。 mongodb服务器上mongod服务的状态为active。
mongo db 实例的输出日志说
Waiting for connections on port 27017
我在应用服务器上的 nodejs 环境有一个配置文件,它指向端口 27017 上 mongo db 服务器实例的 private_ip 以及数据库名称。
mongodb实例的ufw防火墙状态如下
22 ALLOW Anywhere
27017 ALLOW public_ip_address
27017 ALLOW private_ip_address
80/tcp ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
所以我不相信它是阻塞连接的 mongodb 服务器防火墙。
mongodb 实例的安全组配置为允许从端口 80 上的任何位置进行访问。我已尝试从本地计算机锁定 mongdb 实例的公共 ip,但所有数据包都丢失了,我可以 ping 的公共 ip应用服务器,没有丢包。
这很奇怪,因为之前一切正常。应用程序服务器正在与 Mongodb 服务器通信并获取数据并返回到今天。
【问题讨论】:
-
您在分配给 MongoDB 服务器的安全组中没有打开端口
27017吗?你只提到端口80由于某种原因是开放的。 -
@Mark B .... 哦,我的....无法想象我出于一个非常愚蠢的原因删除了它....谢谢....刚刚又添加了一次。请添加您的答案
标签: node.js mongodb amazon-web-services networking amazon-ec2