我有2个EC2实例,第一个是节点js应用服务器,第二个是mongo数据库服务器。我无法从应用服务器或其他任何地方访问数据库服务器。
我可以从mongodb服务器ping应用服务器(私有和公共IP地址),但无法从应用服务器ping mongodb服务器(私有和公共IP地址)。我可以抨击两者。
mongodb服务器有mongod配置文件,网络字段为:
network
bind: [0.0.0.0, private_ip_of_instance]
无论如何,我认为这不是问题所在。我可以从实例中访问我的mongo DB并查询它。 mongodb服务器上的mongod服务的状态是活动的。
mongo db实例的输出日志说
Waiting for connections on port 27017
我在app服务器上的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应用服务器,没有丢包。
奇怪的是因为之前一切都在运作。 App服务器正在与Mongodb服务器通信并获取数据并返回到今天。
答案 0 :(得分:1)
您需要在分配给MongoDB服务器的安全组中打开端口27017
。