【问题标题】:Django Connect to remote database using ssh and pem fileDjango 使用 ssh 和 pem 文件连接到远程数据库
【发布时间】:2019-02-22 02:27:02
【问题描述】:

我可以使用 pem 文件通过 SSH 访问数据库到某些 aws 实例。

我如何将 django 连接到该 postgres 数据库。

Django 数据库连接选项中有 sslkey 等。但找不到 ssh 隧道选项。

请指教

更新:- 由于公司政策,无法更改设置,如添加白名单等。在 aws 云中没有问题,因为所有内容都被列入白名单。我想将本地 Django 设置连接到 staging / uat 数据库进行测试

【问题讨论】:

    标签: django django-settings


    【解决方案1】:

    有几个选项

    您可以创建一个 ssh 隧道来将远程服务器映射到本地端口

    ssh -L <local port>:127.0.0.1:<remote port> <username>@<remote host> -N
    

    当此进程处于活动状态时,本地端口将连接到远程主机上的远程端口。您可以使用 supervisord 之类的内容加上一个脚本来确保 ssh 连接在您的应用程序之前启动。

    另一个选项是django-db-tunnel

    【讨论】:

      【解决方案2】:

      是的,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 端口指向本地端口

      【讨论】:

        猜你喜欢
        • 2019-07-15
        • 2016-10-29
        • 2010-12-30
        • 2016-03-06
        • 2019-05-09
        • 1970-01-01
        • 2021-04-05
        • 2019-08-05
        相关资源
        最近更新 更多