运行状况检查失败,代码如下:[502]

Chr*_*Das 6 amazon-ec2 amazon-web-services aws-application-load-balancer

我想提一下,我不是一个经验丰富的技术人员,但我一直在尝试通过在线课程学习 AWS,但我陷入了一个特定的点:

我创建了两个目标组,每个目标组由两个 EC2 Linux 实例组成,并创建了一些简单的代码作为每个实例的用户数据的一部分。

#/bin/bash
yum update -y
yum install httpd -y
systemctl start httpd
systemctl enable httpd
cd /var/www/html
echo "This is an INSTANCE" > index.html
Run Code Online (Sandbox Code Playgroud)

然后,我创建了一个带有 HTTP 侦听器(端口 80)的应用程序负载均衡器。ALB 已与使用绝对具有公共访问权限的安全组的子网关联(我已将相同的安全组用于具有公共访问权限的其他练习)

但每次,两个目标组都会显示“运行状况检查因这些代码失败:[502]”的描述
。我已经尝试了我能想到的一切,甚至尝试做一些研究,但无法弄清楚。

在有人生气之前,我以前没有使用过堆栈溢出,所以如果这是一个重复的线程,我很抱歉,但在我看到的其他线程中,还有其他更复杂的情况。

有人有什么想法吗?

Joh*_*ein 1

您的脚本从未运行,因为用户数据需要以 开头#!,但您的脚本仅以#.

如果没有#!,则不会作为脚本执行。

调试负载均衡器情况时,一个好的流程是:

  • 尝试直接访问实例,以确认它们作为 Web 服务器进行响应。如果没有,请登录实例并检查/var/log/cloud-init-output.log用户数据是否生成任何错误。
  • 检查安全组以确认它们配置正确,通常是:
    • 负载均衡器 ( ) 上的安全组ELB-SG允许来自 Internet 的入站 Web 流量
    • Amazon EC2 实例 ( App-SG) 上的安全组允许来自 的入站 Web 流量ELB-SG。即App-SG具体参考文献ELB-SG

另请注意,它可以在Amazon Linux 2systemctl上正常工作,但不能在“Amazon Linux”(v1) 上正常工作。