关于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


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

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

enter

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

尝试更改并上传。

Update after seeing code

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

它会正常工作的。


摘自使用 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;
     }
}