我创建了一个安装了 apache 的 EC2 实例,并且只允许我的系统使用 HTTP/SSH 流量。我能够使用 EC2 的公共(public) IP 访问网页。然后我使用相同的 SG 配置 ALB,使用 ALB 注册相同的 EC2 实例。尝试使用 ALB 的 DNS 名称访问网页,出现错误 -504 网关超时。
增加超时间隔以查看这是否解决了问题,但没有用。然后我重温了类(class),并认为让 SG 中的每个人都允许 HTTP 流量(因为它在讲座中是允许的),看看它是否有效,是的,它有效。我再次将 SG 更改为仅允许我的系统的流量,但它再次失败。
最佳答案
在此配置中,您的安全组需要允许来自自身的流量——创建允许适当端口的规则,但使用安全组 sg-xxxx 代替 IP 地址作为源。仅仅作为同一个安全组的成员不允许两个系统相互通信。
更好的配置是让平衡器拥有自己的安全组,并且您的实例组将允许来自平衡器组的流量。
另请注意,如果安全组配置不正确,您还应该发现平衡器上的健康检查失败。
关于amazon-web-services - ALB 上的 504 网关超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55095778/