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

时间:2018-07-03 10:38:30

标签: ruby-on-rails postgresql heroku activerecord

我有一个仅允许列入白名单的IP访问的远程数据库。我已验证可以使用我的quotaguard静态ips进行连接。但是,由于我在ruby on rails应用程序中安装了quotaguard,因此无法正常工作。我的应用程序托管在heroku服务器上,我使用的是puma而非unicorn。有没有人能够做到这一点?

1 个答案:

答案 0 :(得分:0)

我联系了quotaguard的支持人员,并解决了我的问题。我的错误是端口号。我将qgtunnel设置与支持代理提供的以下说明一起使用。他们像魔术一样工作。另外,由heroku run打开的Rails控制台仍未使用代理设置,但主应用程序现在运行良好。这是给定的步骤:

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

  2. 在quotaguard仪表板中设置隧道 heroku插件:打开quotaguardstatic 这将打开我们的仪表板。 点击右上角的设置,然后点击设置。 然后在左侧,单击“隧道”,然后单击“创建隧道”。 远程目标:tcp://:5432 本地端口:5433 透明模式:true 加密:错误(我相信postgres协议已经加密,但是您应该仔细检查)

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

  1. 更新您的procfile

    node { parallel(firstTask: { stage 'B1' // build 'PipelineB' // name of the pipeline }, secondTask: { stage 'B2' // Do some other stuff in parallel }) Stage('C') { //final steps }

  2. 更新您的config / database.yml以指向正确的端口 如果您在第2步上使用了5433,则需要更改连接以指向该连接。

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

  3. 将对heroku的更改推送到隧道荣耀中。