关于python:如何调试\\”您可能需要将\\’maginate.net\\’添加到ALLOWED_HOSTS\\”

How to debug "You may need to add 'maginate.net' to ALLOWED_HOSTS"

我知道这个问题与其他问题非常相似,但我阅读了所有这些问题,但仍然没有找到解决方案。

我在 Google Domains 中注册了 magnate.net,因此该域处于活动状态。进入该域时,它会给出 DisallowedHost 异常。它说将域名放入我所做的 ALLOWED_HOSTS 中,在 local_settings.py 中。当我输入 IP 地址 206.189.179.58 时,网站运行完美。在我的 ALLOWED_HOST 中有一个列表:

1
ALLOWED_HOSTS = ['206.189.179.58', 'maginate.net', 'www.maginate.net']

是的,我已经多次重新启动服务器。我不知道我的 settings.py 是否与此有关,但是将 ALLOWED_HOSTS 留空或不留空仍然会出现错误。我也在关注本教程并按照它所说的去做。

enter

enter

相关讨论
  • 你的 local settings.pyproduction settings.py 一样吗?
  • 我建议您阅读以下内容:obeythetestinggoat.com/book/...
  • 不,他们不是。该教程说保持 settings.py 相同,并覆盖重要的变量,如 SECRET_KEY 和 DATABASES 以及 ALLOWED_HOSTS 以防止网站被黑客入侵。 @AstikAnand
  • 没关系,这就是要走的路,现在只需确保您上传到开发的代码包含 allowed_hosts。我认为您在开发中缺少它。

您仅在本地系统中更新了 settings.py,并且尚未将更新的设置代码上传到生产环境。

我浏览了您的网址,但显示错误。

enter

看到你的 ALLOWED_HOSTS 它只包含 '206.189.179.58''maginate.net' 并且 'www.maginate.net' 没有添加到 ALLOWED_HOSTS.

尝试更改并上传。

Update after seeing code

您已将 settings.pylocal_settings.py 放在投资组合目录中,但它应该在投资组合/投资组合中

它会正常工作的。

相关讨论
  • 你能再检查一下吗?我更新了它,仍然是同样的错误。
  • 您使用哪个服务器托管?
  • 我正在使用数字海洋。请检查此链接。 github.com/mikeyyg96/portfolio/blob/master/settings.py
  • 好的,然后 ssh 到您的服务器,然后使用 nano 编辑文件,然后使用命令 sudo service gunicorn restartsudo service nginx restart 重新启动服务器。
  • 您的设置文件没有得到更新,因为我可以在您的代码中看到 DEBUG = False 但是当我打开它时它仍然处于 DEBUG 模式。
  • 是的,这就是我感到困惑的原因。为什么它说我的portfolio.settings 在ALLOWED_HOSTS 中只有1 个条目,但我显然有3 个。
  • 只需执行 ssh,使用 nano 编辑器并将其更改为 na,它将开始工作。
  • 我正在使用 putty,我已连接到我的服务器,并且可以访问我的 django 项目。这两个文件都将调试设置为 false 并允许主机具有相同的条目。
  • 你有没有运行 sudo service nginx restartsudo service gunicorn restart ???
  • 让我们在聊天中继续这个讨论。

摘自使用 Python 进行测试驱动开发的这一章,看起来您的 nginx 配置可能存在问题:

Fixing ALLOWED_HOSTS with Nginx: passing on the Host header

The problem turns out to be that, by default, Nginx strips out the
Host headers from requests it forwards, and it makes it"look like"
they came from localhost after all. We can tell it to forward on the
original host header by adding the proxy_set_header directive:

server: /etc/nginx/sites-available/superlists-staging.ottg.eu

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
     listen 80;
     server_name superlists-staging.ottg.eu;

     location /static {
         alias /home/elspeth/sites/superlists-staging.ottg.eu/static;
     }

     location / {
         proxy_pass http://unix:/tmp/superlists-stagng.ottg.eu.socket;
         proxy_set_header Host $host;
     }
}

以上是关于python:如何调试\\”您可能需要将\\’maginate.net\\’添加到ALLOWED_HOSTS\\”的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>