AWS Route 53如何将流量路由到带上下文路径的负载均衡器
结论
无法直接通过Route 53 DNS记录将sales.company.com路由到loadbalancerdns/rootpath。DNS协议仅负责域名到IP/目标域名的解析映射,不处理HTTP请求的路径部分,因此所有DNS记录都不允许在值中携带路径后缀,这是DNS协议本身的限制,和Route 53无关。
实现需求的可选方案
你可以根据自己的技术栈选择以下任意一种方案实现访问sales.company.com直接加载/rootpath下的服务:
方案1:AWS ALB(应用负载均衡器)配置(推荐)
如果你使用的是AWS应用负载均衡器,直接修改监听器规则即可:
- 进入ALB对应的HTTP/HTTPS监听器配置页,添加新规则
- 匹配条件选择
Host header,值填写sales.company.com - 动作按需二选一:
- 重定向:选择301(永久)或302(临时)重定向,路径设置为将
/#{path}替换为/rootpath/#{path},用户访问sales.company.com时会自动跳转到带/rootpath的路径,地址栏可见路径变化 - 路径重写:添加转发动作,同时配置路径重写规则,将原始路径前缀
/改写为/rootpath,用户地址栏始终显示sales.company.com,路径变化对用户透明
- 重定向:选择301(永久)或302(临时)重定向,路径设置为将
方案2:后端服务配置
如果不修改负载均衡器配置,可直接在应用服务的入口层添加逻辑:
- 当检测到请求域名为
sales.company.com且请求路径为/时,返回重定向响应跳转到/rootpath即可,适配任意类型的负载均衡器
方案3:CloudFront + Lambda@Edge(CDN场景适用)
如果你已经启用CloudFront CDN加速,可在Viewer Request阶段触发Lambda@Edge函数,将sales.company.com的请求路径自动改写为/rootpath前缀后再转发到源站负载均衡器,全程对用户无感知。
内容的提问来源于stack exchange,提问作者user10916892
相关产品推荐
相关产品推荐

