流量通过AWS Application Load Balancer传输时访问主机名

时间:2017-09-25 06:07:34

标签: amazon-web-services dns load-balancing amazon-elb

对于我们的应用程序,我们使用AWS Application Load Balancer(ALB)并拥有HTTP:80的侦听器以将流量转发到TargetGroup。

我们设置应用程序的方式是,我们将拥有多个子域,并且需要从应用程序中访问这些原始子域(companyA.something.com)。目前,应用程序会看到ALB本身的DNS名称。

到目前为止,我尝试过几种方式设置子域(在Route53中):

  1. 创建子域作为A记录,ALIAS指向ALB DNS 姓名
  2. 为子域名创建托管区域,为其添加NS记录 子域到父域的区域文件 http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/CreatingNewSubdomain.html
  3. 我发现它们基本相同,应用程序仍然只看到ALB DNS名称。

    我是否仍然可以获取我的用户将要使用的原始子域而不会覆盖ALB DNS名称?

    提前致谢, 亚伦

2 个答案:

答案 0 :(得分:0)

通常您可以配置CNAME之类的内容:

api.example.com CNAME my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com

但是有很多案例,选项,可能是本主题的最佳资源之一来自AWS的这篇文章:

https://aws.amazon.com/blogs/devops/introducing-application-load-balancer-unlocking-and-optimizing-architectures/

值得一提的是,您只能为子域名创建 CNAME 资源记录集 - Routing Traffic to an ELB Load Balancer

对于应用程序负载均衡器,请检查Host Conditions部分:

  

您可以使用主机条件来定义根据主机标头中的主机名(也称为基于主机的路由)将请求转发到不同目标组的规则。这使您可以使用单个负载均衡器支持多个域。

答案 1 :(得分:0)

您需要查看HTTP HOST header。您使用的框架应该已经能够为您处理它。