【发布时间】:2015-10-17 18:38:06
【问题描述】:
首先让我说我绝不是 NodeJS/Mongodb/Google 计算引擎专家,甚至不是服务器专家,但不幸的是,我似乎是最接近办公室的人,所以我一直要求将其他人制作的现有 NodeJS 应用程序上传到 Google 计算引擎。
我可以很好地在本地运行该应用程序,但我已经苦苦挣扎了好几天,试图在 GCE 上获得它,或者实际上是任何东西 - 最后我已经到了可以上传我的按照这个书架教程 - https://cloud.google.com/nodejs/getting-started/run-on-compute-engine - 并用我自己的代码替换他们的代码。我还可以让书架教程本身成功地在 GCE 上工作。
到目前为止一切顺利,但不幸的是,我的应用程序没有在 GCE 上运行,并且似乎由于无法连接到我使用 Click to Deploy 服务设置的 mongodb 数据库而被阻止。这为我生成了三个 VM 实例 - mongo-arb-me7o、mongo-db-0ysz、mongo-db-efg0。我的代码在一个单独的实例上运行,我认为该应用不需要任何现有数据在数据库中,我认为它只需要访问一个来存储信息。
我真的希望我的问题是一个相对简单的问题 - 我需要将哪些服务器详细信息放入我的应用程序中以允许它连接到 GCE 上的 mongodb 数据库?我在网上根本找不到任何东西来帮助我弄清楚它应该是什么(老实说,我发现 Google 的文档对新手没有多大帮助)。
默认情况下,应用程序最初设置为 localhost,端口 27017,但这会在 GCE 上记录错误“连接失败”。该教程说通常要打开端口 8080 以访问该站点,所以我想我也会尝试对数据库进行此操作。有趣的是,这记录了一个稍微不同的错误:“连接已关闭”,尽管我不知道这表明了什么?通过浏览器访问时,它只是读取“Internal Server Error”。
我还尝试通过 IP 地址和实例名称(代替 localhost)访问所有三个 mongodb 实例,但没有任何乐趣。我什至可以将应用程序放在单独的实例中吗? mongodb 是否应该安装在运行我的代码的同一个实例上,如果是,我该怎么做?它为数据库生成三个不同实例的事实对我来说不是,但我真的不知道。
如果我已经尝试过的方法应该有效,并且有人想查看任何日志或代码示例以尝试诊断问题,我很乐意提供,但我很高兴这只是一个输入正确的地址和端口号的问题,我还没有找到或弄清楚。
任何帮助将不胜感激,非常感谢。
【问题讨论】:
标签: node.js mongodb google-compute-engine