将Django网站从http升级到https后,我不断收到“无效的HTTP_HOST标头”错误电子邮件

发布于 2021-01-29 17:44:57

最近,我将我的django网站之一从http升级到https。但是,此后,我不断收到Invalid HTTP_HOST header错误的电子邮件,而从未收到此类电子邮件。

以下是一些日志消息:

[Django]错误(外部IP):无效的HTTP_HOST标头:“
123.56.221.107”。您可能需要将‘123.56.221.107’添加到ALLOWED_HOSTS。


[Django]错误(外部IP):无效的HTTP_HOST标头:“ www.sgsrec.com”。您可能需要将“
www.sgsrec.com”添加到ALLOWED_HOSTS。


[Django]错误(外部IP):无效的HTTP_HOST标头:“ sgsrec.com”。您可能需要将“
sgsrec.com”添加到ALLOWED_HOSTS。

在/ apple-app-site-association处报告无效的HTTP_HOST标头:“ sgsrec.com”。您可能需要将“
sgsrec.com”添加到ALLOWED_HOSTS。


无效的HTTP_HOST标头:“ www.pythonzh.cn”。您可能需要将“ www.pythonzh.cn”添加到ALLOWED_HOSTS。

在/无效的HTTP_HOST标头中报告:“ www.pythonzh.cn”。您可能需要将“
www.pythonzh.cn”添加到ALLOWED_HOSTS。

请求方法:GET请求网址:http://www.pythonzh.cn/
Django版本:1.10.6


[Django]错误(外部IP):无效的HTTP_HOST标头:“ pythonzh.cn”。您可能需要将“
pythonzh.cn”添加到ALLOWED_HOSTS。

奇怪的是,我仅更改了博客站点www.zmrenwu.comnginx的配置,但是托管在123.56.221.107上的所有站点似乎都受到影响。

当然,我正确设置了ALLOWED_HOSTS:

ALLOWED_HOSTS = ['.zmrenwu.com']
ALLOWED_HOSTS = ['.sgsrec.com']
ALLOWED_HOSTS = ['.pythonzh.cn']

我的博客站点的Nginx配置www.zmrenwu.com

server {
    charset utf-8;
    server_name zmrenwu.com www.zmrenwu.com;
    listen 80;
    return 301 https://www.zmrenwu.com$request_uri;
}

server {
    charset utf-8;
    server_name zmrenwu.com;
    listen 443;

    ssl on;
    ssl_certificate /etc/ssl/1_www.zmrenwu.com_bundle.crt;
    ssl_certificate_key /etc/ssl/2_www.zmrenwu.com.key;

    return 301 https://www.zmrenwu.com$request_uri;
}

server {
    charset utf-8;
    listen 443;
    server_name www.zmrenwu.com;

    ssl on;
    ssl_certificate /etc/ssl/1_www.zmrenwu.com_bundle.crt;
    ssl_certificate_key /etc/ssl/2_www.zmrenwu.com.key;

    location /static  {
        alias /home/yangxg/sites/zmrenwu.com/blogproject/static;
    }

    location /media {
        alias /home/yangxg/sites/zmrenwu.com/blogproject/media;
    }

    location / {
        proxy_set_header Host $host;
        proxy_pass http://unix:/tmp/zmrenwu.com.socket;

为什么会这样?我该如何解决这个问题?

关注者
0
被浏览
38
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您需要添加一个块

       location / {
    
       }
    

    这种情况(针对非域请求):

    if ( $host !~* ^(yourdomain.com|www.yourdomain.com)$ ) {
       return 444;
    }
    

    sudo service nginx reload
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看