gpt4 book ai didi

Django 错误(外部 IP): Invalid HTTP_HOST header: '*.domain.com'

转载 作者:行者123 更新时间:2023-12-04 01:03:48 24 4
gpt4 key购买 nike

我已经使用 Nginx、Gunicorn、Django 堆栈创建了一个 Django (1.7) Web 应用程序,最近我开始遇到一些错误:

[Django] ERROR (EXTERNAL IP): Invalid HTTP_HOST header: '*.domain.com'. The domain name provided is not valid according to RFC 1034/1035.



搜索后,我发现了几个建议将通配符作为允许的主机的响应,即
ALLOWED_HOSTS = ['*']

但是我仍然收到此错误。

这是完整的错误消息:
Request repr(): 
<WSGIRequest
path:/,
GET:<QueryDict: {}>,
POST:<QueryDict: {}>,
COOKIES:{},
META:{'HTTP_ACCEPT_ENCODING': 'none',
'HTTP_CONNECTION': 'close',
'HTTP_HOST': '*.domain.com',
'HTTP_USER_AGENT': 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2)',
'HTTP_X_FORWARDED_FOR': '11.111.111.11',
'HTTP_X_FORWARDED_HOST': 'subdomain.domain.com',
'HTTP_X_REAL_IP': '11.111.111.11',
'PATH_INFO': u'/',
'QUERY_STRING': '',
'RAW_URI': '/',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_PORT': '51349',
'REQUEST_METHOD': 'GET',
'SCRIPT_NAME': u'',
'SERVER_NAME': '127.0.0.1',
'SERVER_PORT': '9000',
'SERVER_PROTOCOL': 'HTTP/1.0',
'SERVER_SOFTWARE': 'gunicorn/19.1.1',
'gunicorn.socket': <socket._socketobject object at 0x3877fa0>,
'wsgi.errors': <gunicorn.http.wsgi.WSGIErrorsWraper object at 0x37e6050>,
'wsgi.file_wrapper': <class 'gunicorn.http.wsgi.FileWrapper'>,
'wsgi.input': <gunicorn.http.body.Body object at 0x396cc50>,
'wsgi.multiprocess': False,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>

这是我应该关心的事情吗?我在这里错过了什么吗?我想通过将通配符放在允许的主机中,我会消除这个问题,但似乎并非如此。

任何帮助将非常感激。

最佳答案

问题 : gunicorn (您的 Django 应用服务器)正在获取无效的主机名。

when a request is made to the server (NginX) and the HTTP Host (or user agent) is empty, nginx sets the HTTP host to the gunicorn sock.



解决方案 : 在你的 nginx conf ( nginx.confsites-enabled/<your-site>.conf ) 中添加/更新一个指令:
proxy_set_header Host $http_host;

to(如果您没有设置,只需添加以下内容),
proxy_set_header Host $host;

可以放在 location里面,高于 proxy_pass指示:
server {
listen 8000;
server_name 0.0.0.0;

location / {
proxy_set_header Host $host;
include proxy_params;
proxy_pass http://unix:/<your-path>/yourproject.sock;

}
}

关于Django 错误(外部 IP): Invalid HTTP_HOST header: '*.domain.com' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33097700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com