我正在尝试使用数字海洋服务器上的Cookiecutter。(不使用Docker)
我按照指示在Ubuntu 16上安装了Django,Postgres和Gunicorn。https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04
我无法通过允许的主机错误。
DisallowedHost at /
Invalid HTTP_HOST header: '128.199.100.100:8000'.
You may need to add '128.199.100.100' to ALLOWED_HOSTS我在production.py中进行了设置
ALLOWED_HOSTS = env.list ( 'DJANGO_ALLOWED_HOSTS',
default = [ '128.199.100.100' ] )我需要更改任何设置才能使其成为生产环境吗?
Cookiecutter站点上唯一的文档是针对pythonAnywere和Docker的。http://cookiecutter-django.readthedocs.io/en/latest/deployment-on-pythonanywhere.html
我只想要一个简单的DO安装。找不到任何文档?
谢谢。
发布于 2018-01-17 19:22:20
在这个阶段,您需要向您的ALLOWED_HOSTS添加'128.199.100.100:8000' (包括端口)。您可以在runserver命令中将其设置为环境变量:
ALLOWED_HOSTS = env.list ( 'DJANGO_ALLOWED_HOSTS',
default = [ '128.199.100.100', '128.199.100.100:8000' ] )或者您可以将其临时添加到您的设置中的default。
DJANGO_ALLOWED_HOSTS=128.199.100.100:8000 ~/myproject/manage.py runserver 0.0.0.0:8000最后,本教程将更改gunicorn以使用套接字文件,并且您将使用Nginx在端口80上访问网站,因此您的ALLOWED_HOSTS中不需要'128.199.100.100:8000'。
发布于 2019-04-25 06:34:16
我也遇到过类似的问题,我相信我找到了解决方案。
如果您使用传递DJANGO_ALLOWED_HOST值的环境变量(部署时复制凭据的最安全方式)。
然后仔细查看定义主机允许的IP地址列表的语法。环境变量的语法与django环境变量完全不同,这让我感到困惑。
首先,我使用Python语法定义了DJANGO_ALLOWED_HOSTS
export DJANGO_ALLOWED_HOSTS="['localhost', '127.0.0.1', '192.168.1.110']"这是完全不正确的,因为查看设置部分下的错误消息跟踪,我得到了以下ALLOWED_HOSTS值
ALLOWED_HOSTS ["['localhost',", "' 127.0.0.1'"," ' 192.168.1.110']"这只是意味着变量的解析采用了完全不同的语法。将django设置为逗号分隔的字符串也无法解决此问题
export DJANGO_ALLOWED_HOSTS="localhost, 127.0.0.1, 192.168.1.110"解析结果如下所示,请注意第二个和第三个元素中的空格字符。
ALLOWED_HOSTS ['localhost', ' 127.0.0.1', ' 192.168.1.110']似乎解析地址值的逻辑是非常特殊的,并且是列出仅使用逗号作为分隔符的几个主机的唯一正确方法。
export DJANGO_ALLOWED_HOSTS="localhost,127.0.0.1,192.168.1.110"https://stackoverflow.com/questions/48299612
复制相似问题