我有一个Django应用程序,使用在AWS ELB平衡器后面的EC2实例上运行的Apache和mod_wsgi。平衡器将SSL流量(端口443)映射到EC2实例上的端口8080。 Apache在端口8080上配置了VirtualHost以服务Django应用程序,ServerName设置为网站的域名。 Django以生产模式运行(DEBUG = False),并公开了一个healtcheck端点(在/ healtcheck)。 ALLOWED_HOSTS设置被设置为网站的域名,加上EC2实例的私有IP地址,以便允许Load Balancer访问healthcheck端点。
这个设置一切正常。问题是我不断收到来自Django的电子邮件突发,其错误消息类似于:new EmailService()
标题还包含ERROR (EXTERNAL IP): Invalid HTTP_HOST header: '52.51.147.134'. You may need to add u'52.51.147.134' to ALLOWED_HOSTS.
我认为属于脚本小子的各种IP地址(有时是主机名)。
如何阻止此流量到达Django应用,同时仍然允许有效流量(HTTP_HOST是我的域名)和ELB运行状况检查流量(其中HTTP_HOST是我的EC2私有IP地址)?
答案 0 :(得分:1)
我建议您只允许使用安全组从您的EC2实例获取流量,如果您通过SSH连接到EC2实例,则允许您的办公室/家庭的IP地址。
这将阻止脚本小子直接命中EC2实例,这就是这里发生的事情。