【问题标题】:How to use Fixie Socks (Heroku add-on) to connect to mongodb via mongoose如何使用 Fixie Socks(Heroku 插件)通过 mongoose 连接到 mongodb
【发布时间】:2020-08-06 03:36:26
【问题描述】:

我有一个在 heroku 上托管的 node.js express api。它通过mongoose连接到mongodb atlas如下

mongoose.connect(
`mongodb+srv://${process.env.MONGO_USER}:${process.env.MONGO_PWD}@${process.env.MONGO_HOST}/${process.env.MONGO_DEFAULT_DB}?retryWrites=true`, {
  useNewUrlParser: true,
  autoReconnect: true,
  keepAlive: 300000,
  connectTimeoutMS: 300000,
  socketTimeoutMS: 300000
}
)
.then(result => {
  console.log('Connected and listening to requests!');
  app.listen(process.env.PORT || 3000);
.catch(err => console.log(err));

我想为 Heroku 应用程序使用 Atlas MongoDB Cloud 的白名单,而不是向所有人开放访问权限。 Heroku 没有固定 IP 地址,但可以通过名为 Fixie Socks 的插件实现它们,该插件充当出站流量的代理。

如何使用此插件来使连接正常工作? The documentation 给出了几个如何连接其他服务和数据库的例子,但是对 mongodb 没有帮助。所有示例都使用 FIXIE_SOCKS_HOST ,其中包含 SOCKSV5 代理 URL、用户、通行证和端口,但我不知道如何将它与 mongoose.connect 方法结合使用。

这个问题一直是asked before,但是当使用不同的附加组件(Fixie vs Fixie Socks)时,它不起作用。

【问题讨论】:

  • 您找到解决问题的方法了吗?

标签: node.js mongodb heroku mongoose proxy


【解决方案1】:

我尝试了 Fixie Socks,但无法正常工作。但是按照此文档成功地使用 Quota Guard 的静态 IP 地址连接到 Mongodb Atlas 数据库:

https://support.quotaguard.com/support/solutions/articles/12000066411-how-to-connect-to-mongodb-using-quotaguard

诀窍是使用 mongodb atlas 的连接字符串而不使用 +srv 命令。为此,请使用较旧的驱动程序版本,它将为您提供一个包含 3 个副本服务器(每个都有 27017 端口)的连接字符串。然后在 Quota Guard 仪表板上创建 3 个隧道。

确保下载 gqtunnel 包并将其解压缩到应用的根文件夹中。然后您只需将 bin/qgtunnel 添加到您的 procfile。

示例: web: bin/qgtunnel your-application 你的参数

【讨论】:

    猜你喜欢
    • 2017-07-02
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2017-09-09
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多