oll*_*ep3 3 mongodb node.js google-compute-engine
首先我要说的是,我绝不是NodeJS/Mongodb/Google Compute引擎的人,甚至不是服务器人,但不幸的是,我似乎最接近办公室,所以我被要求上传其他人已经制作的现有NodeJS应用程序,用于Google计算引擎.
我可以在本地运行应用程序就好了,但是我一直在努力工作,试图通过GCE来实现它,或者实际上任何事情 - 最后我已经到了可以上传我的应用程序代码的地步了按照这个Bookshelf教程 - 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数据库?我在网上找不到任何东西来帮助我弄清楚它应该是什么(我没有发现谷歌的文档对于完整的新手来说非常有帮助,说实话).
默认情况下,应用程序最初设置为localhost,端口27017,但这会在GCE上记录错误"无法连接".该教程说通常打开端口8080来访问该站点,所以我想我也会尝试使用该数据库.有趣的是,这记录了一个稍微不同的错误:"连接已关闭",但我不知道这表示什么?通过浏览器访问时,它只是读取"内部服务器错误".
我还试图通过他们的IP地址和他们的实例名称(代替localhost)来访问所有三个mongodb实例,但不要高兴.我是否有权在单独的实例中使用该应用程序?是否应该在运行我的代码的同一个实例上安装mongodb,如果是,我该怎么做?事实上,它为数据库生成了三个不同的实例,这对我来说不是,但我真的不知道.
如果我已经尝试过的东西应该工作,并且任何人都希望看到任何日志或代码样本来尝试和诊断问题,我很乐意提供,但是我的手指交叉,这只是放置的问题正确的地址和端口号,我还没有找到或弄清楚.
非常感谢任何帮助,非常感谢.
我想我可能已经破解了它.我偶然发现了另一篇文章:谷歌计算引擎MongoDB通过Java驱动程序连接的问题并不完全相同,而且不是NodeJS,这就是我最初可能错过它的原因,但它有点与同一问题有关我尝试了其中的一些建议,它们似乎有效.
对于所有这些节点/ mongo/gce的新手,并且在混乱的海洋中丢失,似乎服务器地址需要设置为其中一个mongo实例的内部IP地址.如果您使用Click to Deploy,则可以通过"部署和管理">"部署"找出哪一个.在部署的右下角,在建议的后续步骤下,它会说"最初的MongoDB主服务器是mongo-db-0ysz" - 这是指其中一个实例.找到该实例并从VM列表中获取其内部IP.
我将端口号更改回默认值27017,但是我必须通过输入以下命令打开它的访问权限:
gcloud compute firewall-rules create default-allow-http-27017 --allow tcp:27017 --source-ranges 0.0.0.0/0 --target-tags http-server --description "Allow port 27017 access to http-server"
Run Code Online (Sandbox Code Playgroud)
我知道会是这样的.不敢相信我终于让它工作了!除非有人能发现我所做的任何问题吗?那篇文章提到了安全问题,但我不知道这是否适用于此?再次,任何建议非常感谢!
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |