我从Django Web应用程序收到了很多无效的HTTP_HOST标头消息 -
[Django]错误:无效的HTTP_HOST标题:' www.bing.com'。您可能需要 添加你的www.bing.com'到ALLOWED_HOSTS
它来自已知网站(如bing.com, google.com
)以及非常随机的网站(www2t.biglobe.ne.jp, proxy.me5b.ru
)。
电子邮件中的消息是:
没有可用的堆栈跟踪
请求repr()不可用。
我已在其他SO问题上阅读了有关此问题的其他问题,例如this和this 还有一篇很棒的博文,比如this。
但他们似乎都表明这个问题应该在Django 1.6中得到解决。但是,我正在运行Django 1.6.2并且仍然看到此错误。 我正在使用Apache WSGI,该应用程序托管在AWS Elasticbeanstalk上。
我可以抑制这些警报信息,但我应该首先期待它们吗?
答案 0 :(得分:6)
问题不在于django或django应用程序,它在用户方面。
您的django应用程序配置为仅在example.com上发送请求(ALLOWED_HOSTS),然后,如果任何其他域指向相同的IP并且任何用户请求webithe然后django将引发该异常。< / p>
显然bing.con并没有指向你的IP地址(除非你是微软的员工,而且你正在转向django:-O)。
我有一些想法:
不要注意这个错误(我在我的网站上忽略了这个),因为django正在思考:
我没有配置为此域名服务,抱歉,我不会向您提供任何内容。
答案 1 :(得分:3)
这是一个完整的日志配置,如果尚未定义LOGGING,可以将其剪切并粘贴到Django 1.6设置文件中。这是@Devang上面发表评论的片段的后续内容。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'null': {
'class': 'django.utils.log.NullHandler',
},
},
'loggers': {
'django.security.DisallowedHost': {
'handlers': ['null'],
'propagate': False,
},
}
}
答案 2 :(得分:1)
根据docs更新了Django 1.9。
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'null': {
'class': 'logging.NullHandler',
},
},
'loggers': {
'django.security.DisallowedHost': {
'handlers': ['null'],
'propagate': False,
},
},
}