ALLOWED_HOSTS 和 Django

ALLOWED_HOSTS and Django

我试图在生产服务器上启动 Django 1.11 项目。当我启动应用程序时,我看到以下错误:

Invalid HTTP_HOST header: 'bla-bla-bla.bla-bla-vla.com'. You may need to add u'bla-bla-bla.bla-bla-vla.com' to ALLOWED_HOSTS**

但是,主机 "bla-bla-bla.bla-bla-vla.com" 已经添加到 settings.py 中的 ALLOWED_HOSTS

我尝试将 DEBUGFalse 切换到 True 并返回。那么它工作正常。

我做错了什么?

ALLOWED_HOSTS = [
    '127.0.0.1',
    'localhost',
    'bla-bla',
]

正如我在评论中所说:

第一个选项:

您必须在 settings.py 文件中写入:ALLOWED_HOSTS=["bla-bla.com", "localhost", "127.0.0.1"]

然后,您只需重新启动您的服务器:

sudo reboot

或者轻松地重新加载或重启 apache2 服务

service apache2 reloadservice apache2 restart

现在应该可以了 ;)

如果 Django 说:

Invalid HTTP_HOST header: 'bla-bla-bla.bla-bla-vla.com'. You may need to add u'bla-bla-bla.bla-bla-vla.com' to ALLOWED_HOSTS

那么你需要添加 bla-bla-bla.bla-bla-vla.com,字面上(或使用点作为通配符)到 ALLOWED_HOSTS (docs).

然后重新加载 Apache2(不是重新启动,而是重新加载)以验证更改是否已应用。

此外,如果您的 localhostnginx 服务器或 apache2 服务器之间有类似 gunicorn 的服务。记得也重启一下。

sudo systemctl restart gunicorn

我遇到了同样的问题,使用编辑 settings.py

修复了
ALLOWED_HOSTS = ['127.0.0.1', 'localhost']

然后运行

python manage.py runserver 0.0.0.0:8000