如何将多个A记录指向AWS ALB并获取调用别名信息?
实现方案
一、创建子域名解析记录
由于ALB的IP地址是动态变化的,直接用A记录绑定固定IP会导致解析失效,推荐用别名记录(Alias Record)或CNAME记录绑定ALB的DNS名称,步骤如下:
- 登录你的域名托管平台(如Route 53、Cloudflare等)的DNS管理界面
- 针对
example.org域名,添加三条解析记录:- 主机名分别填写
api1、api2、api3 - 记录类型:如果是AWS环境,选择A类型的别名记录,目标直接选中你的ALB对应的DNS名称
api.example.org;其他平台优先选择CNAME记录,将子域名指向api.example.org - TTL保持默认值(如300秒)即可
- 主机名分别填写
二、让后端服务识别调用的子域名
核心是利用HTTP请求的Host头——当用户通过api1.example.org发起请求时,请求的Host头会携带该子域名,后端服务直接读取这个头即可。需要确保ALB不会篡改原始Host头:
- 检查ALB目标组配置:确认目标组已开启转发客户端原始Host头的选项(多数云厂商的ALB默认保留原始Host头,若手动修改过需恢复)
- 后端服务读取
Host头的示例:- Java Spring Boot:
request.getHeader("Host") - Python Flask:
request.host - Node.js Express:
req.headers.host
- Java Spring Boot:
- 若需额外保障,可在ALB监听器规则中添加自定义HTTP头(如
X-Original-Host),将原始Host头的值映射到该自定义头,后端服务读取这个自定义头也可实现需求
内容的提问来源于stack exchange,提问作者stanley opara
相关产品推荐
相关产品推荐

