【问题标题】:"Can't connect to ('0.0.0.0', 5000)" when trying to deploy Django app to Heroku尝试将 Django 应用程序部署到 Heroku 时“无法连接到 ('0.0.0.0', 5000)”
【发布时间】:2018-06-23 04:43:54
【问题描述】:

我正在尝试将 Django 应用程序部署到 Heroku。运行heroku local 命令并转到http://0.0.0.0:5000 后出现以下错误

Invalid HTTP_HOST header: '0.0.0.0:5000'. You may need to add '0.0.0.0' to ALLOWED_HOSTS

但是,允许的主机已经像这样设置了。我的setting.py文件:

cwd = os.getcwd()
if cwd == '/app' or cwd[:4] == '/tmp':
    import dj_database_url
    DATABASES = {
        'default': dj_database_url.config(default='postgres://localhost')
    }
    #honorowanie naglowka xforwardedproto dla request.is_secure()
    SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

    #zezwolenie na wszystkie naglowki hosta
    ALLOWED_HOSTS = ['0.0.0.0']

    #konfiguracja zasobow statycznych
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    STATIC_ROOT = 'staticfiles'
    STATICFILES_DIRS = (
        os.path.join(BASE_DIR, 'static'),
    )

最初我允许将主机设置为['*'],但效果不佳。

我正在使用 gunicorn,还尝试使用 pkill gunicorn 重新启动它,但这没有帮助。

有没有更好的方法来重新启动 gunicorn 或其他解决问题的方法?

【问题讨论】:

  • “然后转到0.0.0.0:5000”是什么意思?由于 0.0.0.0 不是有效的 IP 地址...
  • 当我运行heroku local 时,[2018-06-22 22:33:34 +0200] [1997] [INFO] Listening at: http://0.0.0.0:5000 (1997) 行出现在终端中。我只是从这一行转到链接。
  • 这意味着它绑定到这台机器上的所有IP,见stackoverflow.com/questions/1621457/about-ip-0-0-0-0-in-django

标签: django heroku gunicorn


【解决方案1】:

我找到了一个解决方案:我已经在 settings.py 中有另一个 ALLOWED_HOSTS,默认情况下它就在那里。我必须将其设置为 ['0.0.0.0'] 并删除另一个。

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 2021-09-07
    • 2019-04-03
    • 2019-11-17
    • 2021-03-24
    • 2016-11-16
    • 2015-10-25
    相关资源
    最近更新 更多