Django无效的HTTP_主机头Elastic Beanstalk

Django无效的HTTP_主机头Elastic Beanstalk,django,amazon-elastic-beanstalk,Django,Amazon Elastic Beanstalk,我在AWS ELB上运行一个大型业余网站。我试图通过搜索StackOverflow来解决这个问题,但没有什么效果。我更新了我的settings.py和允许的\u主机,如下所示: ALLOWED_HOSTS = ['127.0.0.1','.amazonaws.com','mysite.com','.elasticbeanstalk.com','localhost',] import requests EC2_PRIVATE_IP = None try: EC2_PRIVATE_IP = r

我在AWS ELB上运行一个大型业余网站。我试图通过搜索StackOverflow来解决这个问题,但没有什么效果。我更新了我的settings.py和允许的\u主机,如下所示:

ALLOWED_HOSTS = ['127.0.0.1','.amazonaws.com','mysite.com','.elasticbeanstalk.com','localhost',]

import requests
EC2_PRIVATE_IP = None
try:
  EC2_PRIVATE_IP = requests.get("http://169.254.169.254/latest/meta-data/local-ipv4", timeout = 0.50).text
except requests.exceptions.RequestException:
  pass

if EC2_PRIVATE_IP:
  ALLOWED_HOSTS.append(EC2_PRIVATE_IP)
ELB健康检查确实有效

然而,我仍然每天收到数千封错误电子邮件。例如:

无效的HTTP_主机头:“54.84.163.167”。您可能需要将“54.84.163.167”添加到允许的\u主机

报到/ 无效的HTTP_主机头:“54.84.163.167”。您可能需要将“54.84.163.167”添加到允许的\u主机

我的站点架构是Cloudfront、ELB和Django。据我所知,显示的IP地址(而且它确实定期变化)是亚马逊网络的一部分。我怀疑这是负载平衡器本身,但我不知道如何确认这一点并确定要添加到允许主机的负载平衡器ip地址


还有其他想法吗?

这似乎是一个AWS IP地址,可能来自EC2或ELB。 深槽-x 54.84.163.167+短槽 ec2-54-84-163-167.compute-1.amazonaws.com

这不是cloudfront区域边缘ip,因为此处未列出: (云端\区域\边缘\ IP\列表)


另外,从ELB到Ec2的运行状况检查是从ELB ENI私有IP地址进行的,我不确定哪个AWS资源拥有这个地址,但它似乎直接在ELB上绕过CloudFront发出请求。

我也看到了这个确切的问题。我不确定这是随机的机器人爬行还是配置错误。这就是说,即使它是机器人爬行,最好让它返回一个不同于500的错误状态,因为这会导致我的健康检查或多或少返回假/阳性。