这是我第一次尝试在Google VM实例上部署Node.js应用程序,同时连接到MongoDB。
在MongoDB中,我已经将我的IP地址和虚拟机实例的IP地址列入白名单。当我使用Google Cloud Shell启动服务器时,我收到以下错误:
op.cb(new error_1.MongoNetworkError(`connection ${this.id} to ${this.address} closed`));
^
MongoNetworkError: connection 1 to 34.71.95.215:27017 closed
我正在连接端口8080。外部IP列在我的GCP实例页面上,当我ping它时,它已经启动。知识产权:34.68.254.120
当我在Mongodb中加入0.0.0.0/0白名单时,代码运行成功,我可以通过GCP预览我的应用程序。
我从头创建了一个新实例,它也崩溃了,并出现了同样的错误。
ETA:在查看源代码周围的错误信息:… node_modules 猫鼬 node_modules mongodb lib 提出 connection.js它看起来像一个闭合的连接。上面的错误信息显示IP地址是我的虚拟机所在的爱荷华谷歌数据中心。
我不知道这是什么意思,但如果你知道,请告诉我。
ETA2:我有两个问题,它们可能是相互关联的。首先是我的VM服务器无法连接到MongoDB。这应该很简单——将我的VM服务器的外部IP地址列入白名单。它不工作(我必须打开MongoDB的0.0.0.0/0连接)。
第二个是我不能通过外部IP地址连接到我的服务器,无论MongoDB是否连接。它"拒绝连接"。不过,我可以对我正在运行的服务器做一个web预览。
这两者似乎有某种联系。我已经重新启动了我的VM,但它没有修复任何东西。我白名单的错误消息IP地址在MongoDB,但它没有帮助。
et3:好吧,看来我已经解决了MongoDB的白名单问题。通过Cloud Shell,我问我的虚拟机IP是什么。和GCP告诉我的外部IP不一样通过将此IP添加到白名单中,我可以连接GCP VM和MongoDB。唷。不知道为什么。
通过我的浏览器,VM的外部IP地址仍然给我一个无法连接的消息,当我使用我通过Cloud Shell找到的新的VM IP地址时,它给我一个"花了太长时间来响应"。消息。
所以我觉得我取得了进步。剩下的问题是通过Chrome访问我的服务器。
我该如何进一步调查这个问题,有什么建议吗?我走到死胡同了。鉴于我缺乏经验,我想问题可能很简单。谢谢!
问题由朋友解决,为今后任何人解决这个问题。
我已经使用Cloud Shell设置了我的GCP VM。我通过Cloud Shell复制我的存储库来存放我的代码。事实证明,这更像是我的VM的虚拟接口,文件不在我的VM上。我需要通过SSH,克隆我的存储库,并通过SSH运行我的服务器。是云壳造成的问题。