AWS Elastic Load Balancing 安全组不允许入站呼叫



我在AWS上运行了以下结构:

Cloudfront -> Varnish -> Nginx -> Elb -> Ec2 实例。

Varnish 和 Nginx 在同一个 ec2 实例上运行。问题是,如果我允许入站流量打开到安全组中的任何位置,nginx只能向我的Elb提出请求。我不想让我的 Elb 打开到任何地方,我只想让我的 Nginx 向 Elb 提出请求。如果我尝试将 Elb 的安全组更改为仅允许调用 nginx,则它不起作用。有人知道这可能是什么吗?

在我看来,您正在使用面向互联网的 ELB。在这种情况下,ELB DNS 将解析为公有 IP,无论您是从同一 VPC 内部还是从 VPC 外部解析它。在这种情况下,引用其他安全组的安全组规则不适用。

这与 EC2 实例不同,EC2 实例的 DNS 将解析为 VPC 内的私有 IP 和 VPC 外部的公有 IP。

两种可能的解决方案:
1. 将弹性 IP 分配给 Varnish/Nginx 实例,并在 ELB 安全组中允许该 IP。
2. 使用内部 ELB,如果适合您的用例,该 ELB 解析为私有 IP。

最新更新