Route53关联ECS Fargate负载均衡器后域名无法访问求助
问题排查与解决步骤
1. 检查Route53记录类型是否正确
你设置的普通A记录无法适配AWS应用负载均衡(ALB)的动态IP特性,必须使用别名(Alias)类型的A记录,将域名直接指向ALB的资源目标(而非手动填写IP)。普通A记录会固定IP地址,当ALB的IP发生变更时,域名访问会立即失效。
操作:在Route53托管区域中,修改现有A记录为别名记录,目标选择对应的ALB资源,确保关联关系正确。
2. 验证域名解析结果
用nslookup或dig命令检查域名的解析结果,确认是否与ALB的DNS解析IP一致:
nslookup your-domain.com dig your-domain.com
如果解析结果与ALB自身DNS解析出的IP不匹配,说明Route53记录未生效或配置错误。
3. 清除DNS缓存
本地设备或公共DNS服务商的缓存可能导致域名解析未更新,可通过以下方式排查:
- 清空本地DNS缓存:Windows执行
ipconfig /flushdns,Mac执行sudo dscacheutil -flushcache - 切换至其他网络(如手机热点)测试访问,排除本地网络缓存干扰
4. 修正Terraform中ALB的子网配置错误
你的Terraform配置里,aws_lb资源的subnets字段传入的是CIDR地址(var.public_subnets_cidr),但该参数要求传入子网ID列表,错误配置可能导致ALB无法正常对外提供服务:
resource "aws_lb" "notes_lb" { name = "notes-api-ecs-lb" load_balancer_type = "application" security_groups = [var.notes_lb_security_group_id] # 修正:替换为子网ID变量,如var.public_subnet_ids subnets = var.public_subnet_ids enable_deletion_protection = false tags = { Name = "${var.environment}-ecs-lb" Environment = var.environment } }
修正后重新应用Terraform配置,确保ALB正确部署到公网子网。
5. 确认Route53托管区域与域名匹配
检查托管区域的域名是否与访问域名完全一致:
- 若访问的是
api.yourdomain.com,需在yourdomain.com托管区域下创建api子域名记录,或直接使用api.yourdomain.com作为托管区域域名 - 确认托管区域的NS记录已在域名注册商处正确配置,否则域名无法解析到Route53服务器
6. 检查访问协议与ALB监听端口匹配
你的ALB仅监听80端口(HTTP协议),访问时需使用http://your-domain.com,若输入https://会因无对应监听配置而无法访问。如需HTTPS访问,需在ALB上添加443端口监听并配置SSL证书。
内容的提问来源于stack exchange,提问作者busuu
相关产品推荐
相关产品推荐

