【问题标题】:Connecting to Mongodb within private VPC with Nodejs Mongoose使用 Nodejs Mongoose 在私有 VPC 中连接到 Mongodb
【发布时间】:2018-06-26 11:58:16
【问题描述】:

我有一个 VPC,在 VPC 内:

  1. 私有数据库 Mongodb 实例。安全入站链接到我的公共节点 安全实例。
  2. 公共 NAT 实例。
  3. 通过我的 NAT 实例的公共 nodejs 应用程序实例

我可以通过我的 nodejs 实例 ssh 进入 Mongodb 实例。 我能够下载并在我的私人数据库上运行 mongodb。 但不确定从我的 nodejs 实例连接到 mongodb 私有实例的连接字符串。

我有:mongoose.connect('mongodb://username:password@xx-x-x-xx:27017/admin'); 错误信息: MongoNetworkError:第一次连接时无法连接到服务器 [xx-x-x-xx:27017] [MongoNetworkError: connect ECONNREFUSED xx-x-x-xx:27017]

我的 mongodb 只有一个私有 ip,并且认为这就是它无法连接的原因?我是否必须以某种方式通过我的 NAT 实例?

有人通过 NAT 连接到私有 Mongodb 实例吗?

我之前没有通过私有 VPC 连接过..

【问题讨论】:

  • 有点混乱。您的意思是您有一个带有公共子网和私有子网的 VPC?公共子网中的Nodejs应用程序服务器和NAT网关与私有子网中的MongoDB? public node security instancePublic nodejs application instance 是同一个实例吗?另外,为什么你还在同一个内部网络中时要通过 NAT 网关?
  • 是的,对不起。我在 VPC 中有 3 个子网。私有子网中的 MongoDB 实例,其自己的公共子网中的 NAT 实例,其自己的公共子网中的 nodejs 服务器实例。节点服务器通过 nat 实例到达 Mongodb 实例。我观看了一段视频,并被告知启动安全数据库的最佳方式就是这样做。我能够 ssh 进入 Mongodb 实例并下载 Mongodb,但由于实例是私有的,因此不确定连接字符串。我需要这样做吗?
  • 感谢您的澄清 :) 从技术上讲,您不必通过 NAT 网关访问 MongoDB。对于如此简单的设置,这使得路由有点混乱,并且不会提高安全性。 (另外,这是一个充当 NAT 网关的 EC2 实例,还是通过 VPC 部分中的 AWS 控制台配置的 NAT 网关?)无论如何,I am able to ssh into Mongodb instance... 这是来自 nodejs 服务器吗?如果是这样,最可能的原因是端口 27017 未包含在附加到您的 MongoDB 实例的安全组中(确保它只允许您的 nodejs 服务器的私有 IP)
  • 是的,它看起来确实有点乱! EC2 实例充当 NAT 网关。我通过我的 Nodejs 服务器实例 ssh。我的 Mongodb 实例源的安全组设置为用于 ssh 的 Nodejs 子网 CIDR 块以及端口 27017。当您说“确保它允许您的 nodejs 服务器的私有 IP”时,您是在谈论子网 cidr 块做对了吗?我应该完全放弃 NAT 吗?
  • 是的,子网 CIDR 块很好。您应该可以从您的 nodejs 实例中telnet <mongo.private.ip.here> 27017。 (PS 希望 xx-x-x-xx 表示 xx.x.x.xx,除非它指的是私有 DNS)如果您无法连接,则可能是操作系统上的配置(如果 ubuntu. SELinux 如果是 CentOS 或 Amazon Linux 之类的变体(尽管我认为默认禁用)?)

标签: node.js mongodb amazon-web-services amazon-ec2 mongoose


【解决方案1】:

解决方案: 更改了我的 mongo.conf 文件 从: 网: 港口:27017 绑定IP:127.0.0.1

到: 网: 港口:27017 绑定IP:0.0.0.0

基本上将 bindIp: 更改为 0.0.0.0 以允许任何 IP。

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 2019-03-14
    • 2022-12-23
    • 2021-08-29
    • 1970-01-01
    • 2021-03-17
    • 2021-04-28
    • 1970-01-01
    相关资源
    最近更新 更多