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

pjo*_*hin 2 http amazon-web-services amazon-elastic-beanstalk

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

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

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

流程现在:

Client -> Load Balancer -> EC2 instance -> Nginx -> Django
                                       <-500 error- Django
Run Code Online (Sandbox Code Playgroud)

我想要的是:

Client -> Load Balancer
<-reject- Load Balancer 
Run Code Online (Sandbox Code Playgroud)

Mat*_*ser 5

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

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

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

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