![尽管 80 端口已向 Internet 开放,AWS ALB 仍显示目标组不健康](https://linux22.com/image/768322/%E5%B0%BD%E7%AE%A1%2080%20%E7%AB%AF%E5%8F%A3%E5%B7%B2%E5%90%91%20Internet%20%E5%BC%80%E6%94%BE%EF%BC%8CAWS%20ALB%20%E4%BB%8D%E6%98%BE%E7%A4%BA%E7%9B%AE%E6%A0%87%E7%BB%84%E4%B8%8D%E5%81%A5%E5%BA%B7.png)
我已经通过 Terraform 构建了 AWS ALB 和目标组,一切看起来都正确,但目标组报告 HTTP、HTTPS 和 TCP 不健康。该实例是 us-east-2 中的 t3.nano,已安装并正在运行 Nginx。
我已经验证了以下内容:
- Nginx 已配置并运行在端口 80 和 443 上
- 安全组允许从 0.0.0.0/0 开始的 HTTP 和 HTTPS
- 实例位于公共子网上(即 0.0.0.0/0 路由到 IGW)
如果我从 Internet 访问实例的公共 IP,则会显示“欢迎使用 nginx!”页面。此请求会显示在 /var/log/nginx/access.log 中。 tcpdump 端口 80显示来自互联网的请求,但没有显示 AWS 健康检查。
我以前使用过 ALB 和目标组,从未遇到过这样的问题。唯一的区别是这个实例是使用 Terraform 创建的。
答案1
我认为你需要在你的资源中配置该target_type
参数lb_target_group
。默认值是 instance
,该配置需要autoscaling_group
用于 EC2 实例。如果你用于aws_instance
EC2,则需要使用ip
参数。