【问题标题】:Django on EC2 security group fo postgresql on RDSRDS 上的 EC2 安全组 fo postgresql 上的 Django
【发布时间】:2017-03-04 23:50:59
【问题描述】:

将我的 settings.py 中的 DATABASES 条目编辑为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'Limbo',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': '<dbname>.<gibberish>.us-west-2.rds.amazonaws.com',
        'PORT': '5432',
    }
}

现在当我.manage.py runserver 0.0.0.0:800 时,它说:

正在执行系统检查...

系统检查未发现任何问题(0 静音)。

然后在一两分钟后:

文件 “/home/ec2-user///local/lib64/python2.7/site-packages/psycopg2/init.py”,第 164 行,在连接中 conn = _connect(dsn, connection_factory=connection_factory, async=async) django.db.utils.OperationalError: 无法连接到 服务器:连接超时 服务器是否在主机“..us-west-2.rds.amazonaws.com”(172.rest.of.ip)上运行并且 接受 端口 5432 上的 TCP/IP 连接?

我已确保包含从我的 ec2 的 IP(使用curl ifconfig.co 验证)传入的通过 5432 的访问以及错误消息中列出的 ip(以上面的 172 开头)。也许我需要在 172 源中使用更大的子网(超过 32 个)?

编辑:当我运行 python limbo/manage.py migrate 时出现同样的错误 EDIT2:如果我允许来自安全组中任何 IP 的 5432 个连接,它可以工作,但如上所述,我允许我的 EC2 的 IP(根据curl ifconfig.co 的返回值。我应该包括哪些其他 IP?

【问题讨论】:

    标签: django postgresql amazon-ec2 amazon-rds


    【解决方案1】:

    在 linux 命令行中输入以下内容: cd /path/to/djangoproj screen source &lt;env&gt;/bin/activate

    然后您应该会看到命令行工具显示如下内容: (&lt;env&gt;)[ec2-user@ip-172-31-26-243 djangoproj]$

    查看中间的那个部分:ip-172-31-26-243,这是本地 ip,在安全组设置中使用它。在这种情况下,我使用 172.31.26.243/32 作为允许的传入 IP

    然后再尝试runserver

    【讨论】:

    • 很高兴它帮助了某人!
    猜你喜欢
    • 2013-03-19
    • 2018-07-22
    • 2020-08-12
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    相关资源
    最近更新 更多