使用静态 IP 从 Heroku 连接到远程数据库(因为数据库服务器只允许列入白名单的 IP)

Aah*_*lad 1 ruby-on-rails remote-access heroku proximo

我在 Heroku 上运行 Ruby on Rails 应用程序,我的数据库位于其他地方,只能使用某些列入白名单的 IP 访问它,但由于 heroku 不提供动态 IP,我想使用 proximo。

请帮助我如何从 heroku 使用 proximo 连接到远程数据库。

Ric*_*eck 5

我们很难做到这一点(我们最终将每个域都列入白名单)


知识产权

问题是 Dyno 托管在AWS 的 EC2 云上- 这意味着它们实际上不是 Heroku 的服务器。这会导致很多问题,因为 IP 都被覆盖并更改:

因为 Heroku dyno 网格本质上是动态的,所以随着时间的推移,给定 dyno 分配的 IP 地址既是动态的,又是不可预测的。出站流量的这种动态来源可能使与 API 集成或通过需要基于 IP 的白名单的防火墙建立连接变得困难

看到proximo 插件后,您或许可以使用静态 IP 实现您的需求


比邻

根据Heroku 站点上proximo 教程,您应该能够相对简单地安装附加组件并接收您的出站 IP:

$ heroku addons:add proximo:development
Adding proximo to sharp-mountain-4005⦠done, v18 ($5/mo)
Your static IP address is 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

然后你应该能够在你的数据库主机上使用它 - 允许 IP

  • 请注意,要将每个域列入白名单,您可以将 0.0.0.0/0 列入白名单(如果您使用的是 Google Cloud SQL 数据库,请将其添加到“授权网络”中)。如果这样做,强烈建议配置 SSL 并“仅允许 SSL 连接”。 (3认同)