Ruby on Rails Postgres使用Socks Proxy进行远程数据库连接



我有一个远程数据库,只有列入白名单的 IP 才能访问。我已经验证了它可以通过使用我的配额保护静态 IP 进行连接。但是,在我的 ruby on rails 应用程序中设置了配额保护,它不起作用。我的应用程序托管在 heroku 服务器上,我使用的是美洲狮而不是独角兽。有没有人能够做到这一点?

我联系了配额保护支持并解决了我的问题。我的错误在于端口号。我按照支持代理给出的以下说明使用了 qgtunnel 设置。他们像魔术一样工作。此外,heroku run 打开的 rails 控制台仍然没有使用代理设置,但主应用程序现在运行良好。以下是给出的步骤:

  1. 将 QGTunnel 下载到项目的根目录 卷曲 https://s3.amazonaws.com/quotaguard/qgtunnel-latest.tar.gz |焦油 xz

  2. 在配额保护仪表板中设置隧道 Heroku 插件:Open QuotaGuardstatic 这将打开我们的仪表板。 点击右上角的设置,然后点击设置。 然后在左侧,点击隧道,然后点击创建隧道。 远程目标:tcp://:5432 本地端口:5433 透明模式:真 加密:假(我相信postgres协议已经加密,但你应该仔细检查(

注意:我使用了本地端口 5433,因为 5432(postgres 默认值(可能已被您的生产数据库使用。 如果没有,则可以使用 5432。

  1. 更新您的 procfile

    web: bin/qgtunnel bundle exec puma -C config/puma.rb

  2. 更新您的配置/数据库.yml 以指向正确的端口 如果您在步骤 2 中使用了 5433,则需要更改连接以指向该连接。

    external: adapter: postgresql encoding: unicode pool: 5 host: remote_database_host database: remote_database_name username: remote_database_username password: remote_database_password

  3. 将您的更改推送到 heroku 并沐浴在隧道荣耀中。

最新更新