我正在使用 Digital Ocean tutorial 设置我自己的 Django 服务器.我按照每个步骤创建了 Django 框架,并使用以下命令运行服务器:
./manage.py runserver 0.0.0.0:8000
当我尝试访问8000端口的IP时,出现如下错误:
DisallowedHost at /
Invalid HTTP_HOST header: 'XXX.XXX.XXX.XXX:8000'. You may need to add u'XXX.XXX.XXX.XXX' to ALLOWED_HOSTS.
(IP 替换为 X)
为什么会这样?
最佳答案
在您的 settings.py
中,有一个名为 ALLOWED_HOSTS
的列表。您需要将错误中看到的 IP 地址添加到该列表中:
ALLOWED_HOSTS = ['XX.XX.XX.XX']
注意:仅添加 IP 地址,不添加端口(例如,127.0.0.1
和不是 127.0.0.1:8000
)
说明:
Django 检查 HTTP 请求的 Host
header 中是否存在允许的主机中的 url/ip 地址。
来自 django 网站:
This is a security measure to prevent HTTP Host header attacks, which are possible even under many seemingly-safe web server configurations.
https://docs.djangoproject.com/en/dev/ref/settings/#allowed-hosts
关于python - 为什么 Django 抛出错误 "DisallowedHost at/"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40667519/