【发布时间】:2019-02-22 02:27:02
【问题描述】:
我可以使用 pem 文件通过 SSH 访问数据库到某些 aws 实例。
我如何将 django 连接到该 postgres 数据库。
Django 数据库连接选项中有 sslkey 等。但找不到 ssh 隧道选项。
请指教
更新:- 由于公司政策,无法更改设置,如添加白名单等。在 aws 云中没有问题,因为所有内容都被列入白名单。我想将本地 Django 设置连接到 staging / uat 数据库进行测试
【问题讨论】:
我可以使用 pem 文件通过 SSH 访问数据库到某些 aws 实例。
我如何将 django 连接到该 postgres 数据库。
Django 数据库连接选项中有 sslkey 等。但找不到 ssh 隧道选项。
请指教
更新:- 由于公司政策,无法更改设置,如添加白名单等。在 aws 云中没有问题,因为所有内容都被列入白名单。我想将本地 Django 设置连接到 staging / uat 数据库进行测试
【问题讨论】:
有几个选项
您可以创建一个 ssh 隧道来将远程服务器映射到本地端口
ssh -L <local port>:127.0.0.1:<remote port> <username>@<remote host> -N
当此进程处于活动状态时,本地端口将连接到远程主机上的远程端口。您可以使用 supervisord 之类的内容加上一个脚本来确保 ssh 连接在您的应用程序之前启动。
另一个选项是django-db-tunnel
【讨论】:
是的,https://www.pythonanywhere.com postgres 数据库也有同样的问题。但它正在使用 SSH 隧道
ssh -L <local port>:127.0.0.1:<remote port> <username>@<remote host>
使用 SSH 隧道连接 pythonanywhere.com postgres 数据库的示例
ssh -4 -L 5432:xxxxxx.postgres.pythonanywhere-services.com:12499 <db_name>@ssh.pythonanywhere.com
SSH 连接后,您可以将 django postgres 端口指向本地端口
【讨论】: