【问题标题】:Problem connecting to Oracle db inside heroku through a static IP通过静态 IP 连接到 heroku 中的 Oracle 数据库时出现问题
【发布时间】:2019-09-30 16:39:55
【问题描述】:
我正在编写一个 Rails 应用程序,它需要连接到公司防火墙内的 Oracle 数据库。因此,我需要连接到他们的 VPN 或至少使用静态 IP 地址来建立我的所有连接。
我尝试了Proximo 和QuotaGuard,但没有成功。我进行了所有必需的配置,但无论我做什么,防火墙都会说我正在尝试通过我的实际 IP 进行连接,而不是静态 IP。
【问题讨论】:
标签:
ruby-on-rails
ruby
oracle
heroku
firewall
【解决方案1】:
经过几天的尝试,在 QuotaGuard 的大力帮助下,我解决了它:
QuotaGuard 的工作原理是覆盖 DNS 查找,因此我的服务器连接转到我的本地计算机,其中一个进程会将所有流量重定向到我的远程服务器,该服务器将通过正确的 IP 进行连接。
但似乎 oracle 驱动程序没有看到此 DNS 更改,因此它将向最终服务器发出所有请求,该服务器阻止了我的连接。我所做的只是将我的数据库连接信息指向 127.0.0.1,因此qgtunnel 应用程序可以将其发送到最终服务器。
它现在就像一个魅力。
所以,我的最终设置是这样的:
.qgtunnel文件
[qgtunnel.0]
accept = "127.0.0.1:3333"
connect = "HOST_ADDRESS:3333"
encrypted = false
transparent = true
config/oracle_db.yml文件
default: &default
encoding: utf8
adapter: oracle_enhanced
host: 127.0.0.1
port: 3333
database: database
username: <%= ENV['DB_USER'] %>
password: <%= ENV['DB_PASS'] %>
development:
<<: *default
test:
<<: *default
production:
<<: *default
Procfile文件
web: bin/qgtunnel bundle exec puma -C config/puma.rb