AWS Load Balancer可以配置为过滤掉请求吗?

时间:2016-01-15 16:13:25

标签: http amazon-web-services elastic-beanstalk

我在AWS Elastic Beanstalk上部署了一个Django应用程序。 Django配置为仅为特定主机名(ALLOWED_HOSTS)提供请求。如果请求中的主机信息不匹配,它将引发返回500响应代码,没关系。

但是,我注意到我收到了很多这样的信息,无论是通过IP地址发送请求,还是通过其他域名发送请求。因此,我想配置设置,以便负载均衡器拒绝请求,如果它在标头信息中没有正确的主机名。

这可能吗?我一直试图在AWS控制台中查看设置,但找不到任何有关如何执行此操作的信息。我可以修补EC2实例以拒绝这些请求,因此它根本不会到达Django,但我想尽早停止它。

现在流动:

If Not invoicelist.Contains(Object where InvoiceNo = dbobjM.DataReader.GetInt32(0)) Then
  invoicelist.Add
End If

我想要的是什么:

Client -> Load Balancer -> EC2 instance -> Nginx -> Django
                                       <-500 error- Django

1 个答案:

答案 0 :(得分:5)

无法配置Elastic Load Balancer来过滤掉请求。

如果允许的连接基于IP地址,则可以使用VPC ACL仅允许来自特定IP地址的连接。所有其他人将在ELB级别接收失败的连接。

如果您允许的连接不是基于IP地址,您可以将CloudFront与Amazon Web Application Firewall(WAF)结合使用。

可以将WAF配置为按IP地址,URL,查询字符串,标题等在Web请求级别进行过滤。