0

我有一个在 VPS 上运行的 django 应用程序。我只是想将它连接到我从 redhat 安装在 openshift 上的 postgresql 实例。在数据库设置的设置文件中,我放置了以下内容 -

########## DATABASE CONFIGURATION
# See: https://docs.djangoproject.com/en/dev/ref/settings/#databases
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'sdf',
        'USER': 'asdfsfpbb6c',
        'PASSWORD': 'dsfgsdgs1sbdeU',
        'HOST': '',
        'PORT': '',
    }
}

The trouble now is the HOST and PORT are 127.4.57.130 and 5432. 

要在本地访问它,我总是可以进行端口转发,但是如果我想从另一个网络服务器(比如 VPS)访问数据库怎么办?我怎样才能做到这一点?

stormydude@ubuntu:~$ rhc port-forward <app_name>
Checking available ports ... done
Forwarding ports ...
Address already in use - bind(2) while forwarding port 5432. Trying local port 5433

To connect to a service running on OpenShift, use the Local address

Service    Local               OpenShift
---------- -------------- ---- -----------------
postgresql 127.0.0.1:5433  =>  127.4.57.130:5432
python     127.0.0.1:8080  =>  127.4.57.129:8080

Press CTRL-C to terminate port forwarding

另外,如果我的服务器在heroku上,有没有办法可以连接到openshift的数据库服务器?

4

2 回答 2

1

使用此博客使用 Red Hat 命令行工具 (rhc) 设置端口转发

https://www.openshift.com/blogs/getting-started-with-port-forwarding-on-openshift

或者您可以手动运行: ssh -N -L $YOUMACHINE_INTERNAL_IP:3306:$OPENSHIFT_REMOTE_INTERNAL_IP:3306 {appName}-{namespace}@rhcloud.com

将 OPENSHIFT_REMOTE_INTERNAL_IP 替换为 127...* ip 地址

例子:

ssh -N -L 10.11.22.213:3306:127.4.139.121:3306 test-testing@rhcloud.com

于 2013-06-10T17:52:36.690 回答
1

您可以从 OpenShift 反向端口转发到您的其他服务器,或者您可以从您的服务器端口转发到 OpenShift 服务器 - 但没有直接的数据库访问。直接访问需要将您的数据库暴露给外界,通常被认为是不好的安全做法

于 2013-06-10T14:28:19.567 回答