DNS 管理:使用 Amazon 负载均衡器将 mydomain.com 路由到 www.mydomain.com

DNS 管理:使用 Amazon 负载均衡器将 mydomain.com 路由到 www.mydomain.com

我错误地在 stackoverlow 上问了这个问题,然而,在这里可能更有意义。

我的应用程序在亚马逊上,我正在使用他们的 EC2 负载均衡器。亚马逊在其网站上声明:

DNS Name: XXXXXXXX.us-east-1.elb.amazonaws.com
Note: Because the set of IP addresses associated with a LoadBalancer can change over time, 
you should never create an "A" record with any specific IP address. If you want to use a friendly 
DNS name for your LoadBalancer instead of the name generated by the Elastic Load Balancing 
service, you should create a CNAME record for the LoadBalancer DNS name. For more information 
about CNAME records, see the CNAME Record Wikipedia article.

www在 DNS 中创建了一个 CNAME 记录主机,映射到上面的负载均衡器。 http://www.mydomain.com转发到正确的应用服务器。(酷)

但是,我注意到当我输入mydomain.com而不是 时,http://www.mydomain.com它会转到默认的 A 记录,该记录映射到不同的 IP 而不是负载均衡器。我该如何解决这个问题?我希望 www.mydomain.com 和 mydomain.com 都转到同一个负载均衡器。我想我需要在 DNS 中执行此操作,对吗?

注意:我通过 ping 两个地址验证了上述内容。

答案1

我希望 www.mydomain.com 和 mydomain.com 都进入同一个负载均衡器。

你不能。这是一个已知的设计限制,它源于 Amazon Elastic Load Balancer (ELB) 的实施方式和 DNS 的长期设计选择的结合。

您无法为裸二级域名创建 CNAME 条目。即yourdomain.com必须是直接指向 IP 地址的 A 记录。

但是,亚马逊的 ELB 依赖于亚马逊创建的自定义 DNS 和 EC2 平台,这要求您的 DNS 条目是指向您的亚马逊 ELB 域名(即XXXXXXXX.us-east-1.elb.amazonaws.com)的 CNAME。

综上所述,这基本上意味着您只能在 ELB 中使用三级域名,例如www.yourdomain.comblog.yourdomain.com。这些必须是 CNAMES,指向您的 ELB 实例。

因此,对于裸二级域名yourdomain.com(@)本身,您必须:

几乎任何像样的域名注册商或 DNS 主机都应该有免费或非常便宜的方式来实现这一点。您也可以自己做,通过运行带有 Web 服务器的 EC2 实例,但何必呢……

我不知道 GoDaddy 的用户界面是什么样的,因为我自己从来没有用过。但 Gandi 有免费的 HTTP 重定向功能,称为“Web Forwarding”,而 GoDaddy 似乎有一个“站点重定向管理器“。

在现实生活中,这对最终用户来说并不是一个问题。 经过短暂的一段时间,所有搜索引擎索引和所有最终用户书签都将指向www.yoursite.com,因此通过 进入并被重定向的用户数量yoursite.com将非常少。 对于这些用户来说,这是一个短暂的延迟(可能 100-200 毫秒),并且应该只会发生一次。

相关内容