使用 AWS 负载均衡器的 A(主机)记录

Posted

技术标签:

【中文标题】使用 AWS 负载均衡器的 A(主机)记录【英文标题】:A(Host) Records with AWS Load Balancer 【发布时间】:2011-08-15 11:48:54 【问题描述】:

我有一个关于 AWS 负载均衡器的问题。

我可以完美地将我的CNAME www 指向我的负载均衡器的 DNS,并且我知道它总是可以工作,但我还需要将 @ 记录指向负载均衡器,这样人们才能访问 mysite.com 而不是 www.mysite.com并点击负载均衡器。

问题是 A 记录必须指向 IP 地址,因此我无法指向 DNS,并且负载平衡器的 IP 不断变化,因此 mysite.com 停止工作。

谁能推荐我解决这个问题?

【问题讨论】:

【参考方案1】:

来自 DNS 服务提供商的重定向对我不起作用。 我决定放弃使用负载均衡器(从一开始我创建它只是为了尝试破解提到的证书问题)。如果您必须使用 LB,请阅读下面的 opt #2,我没有尝试过,但我认为它应该可以工作。

选项 #1(无 LB) 获取您从受信任的颁发者那里获得的证书并将其直接安装在服务器上。从服务器(http到https)发出重定向命令,它也将处理www。 我使用了 bitnami 的图像,所以我可以使用 bncert-tool。

选项 #2(使用 LB,您应该拥有证书正文和私钥) 您应该执行 Opt #1 并且 转到 AWS-> 导入证书的证书管理器,然后将该证书与您的 LB 一起使用,这样您在两种情况下都拥有相同的证书 我从未尝试过选择 #2

祝你好运

【讨论】:

【参考方案2】:

这里是步骤。

    点击创建记录集 对于区域顶点记录,只需将名称字段留空 选择您要设为 A 或 AAAA 的别名类型(这两种类型之后的所有步骤都相同) 选择是单选按钮。 在另一个选项卡中打开 EC2 控制台并导航到负载均衡器列表。 单击负载均衡器并查看列表下方窗格中的描述选项卡。下面的示例输出

【讨论】:

【参考方案3】:

您不需要重定向,是的,它可以完成。它只是不处于使用 DNS 的正常模式,所以很多人还不习惯使用带有 ELB 别名的区域顶点。

在此处查看其他答案中给出的链接,尤其是https://serverfault.com/questions/342904/how-do-you-create-a-zone-apex-alias-that-points-to-a-elastic-load-balancer-in-th

【讨论】:

【参考方案4】:

亚马逊在其路由 53 DNS 服务中添加了一个特殊的别名选项。您可以将 A 记录作为别名指向负载均衡器 dns。我遇到了同样的问题,因为我使用 Bind 9 托管我自己的 DNS 服务器。我不想将 CNAME 与重定向解决方案一起使用。路由 53 解决方案更好,亚马逊擅长在全球传播 DNS 信息。

这里解释了如何将路由 53 与弹性负载均衡器的特殊别名记录一起使用。

https://serverfault.com/questions/342904/how-do-you-create-a-zone-apex-alias-that-points-to-a-elastic-load-balancer-in-th

【讨论】:

【参考方案5】:

从技术上讲,这是不可能的。您只能使用 CNAME 引用 Amazon 负载均衡器,它会违反 DNS 规则将 CNAME 分配给域的根目录,因为这会导致 MX 记录出现问题。

也就是说,某些 DNS 提供商确实允许您这样做,亚马逊的 53 号路由不允许,但 Zoneedit 允许(带有警告)。如果您不需要您的电子邮件为该域工作,这是一个解决方案。如果您确实需要电子邮件,我的确实可以使用 Zoneedit,但 DNS 规则说您不能依赖它。

编辑:在我的帖子之后,亚马逊添加了使用 Route 53 将域的根(也称为区域顶点)映射到负载均衡器的功能。请参阅 this blog post。

【讨论】:

【参考方案6】:

Amazon 现在在 Route53 中提供了一种将 A 记录绑定到 ELB 的机制:http://www.allthingsdistributed.com/2011/05/aws_ipv6.html

【讨论】:

【参考方案7】:

您需要一个执行重定向的 Web 服务器。即您想从 mysite.com 指向的 Web 服务器发送 301“永久移动”,重定向到 www.mysite.com。然后你将 www.mysite.com 命名为 Amazon。

一些 DNS 托管服务提供商会为您执行此操作,我认为 GoDaddy 会执行此操作。否则,您需要设置一个可以配置的 Web 服务器来执行此操作。

.htaccess 中的 Apache 配置可以是例如:

RewriteEngine on
RewriteCond %HTTP_HOST mysite.com
RewriteRule ^(.*)$ http://www.mysite.com/$1 [L,R=permanent]

如果您有一个支持 .htaccess 的通用 Apache 托管站点,那么您可以这样做。

无论如何,您正在寻找的是重定向。

【讨论】:

【参考方案8】:

正如 David 指出的那样,您不能这样做并且仍然保留在 DNS RFC 中。你可以在某个地方构建一个小型的无负载平衡实例,只重定向 mysite.com -> www.mysite.com。不是一个完全优雅的解决方案,而是一种解决方法..

【讨论】:

这对于使用不支持 A-ALIAS 记录的 DNS 服务器的客户来说实际上是一个非常有趣的解决方案。一个微型 Tx-micro 可以轻松处理这种重定向。

以上是关于使用 AWS 负载均衡器的 A(主机)记录的主要内容,如果未能解决你的问题,请参考以下文章

服务器上的 AWS 负载均衡器、静态 IP 和 SSL 终止(不是负载均衡器)

AWS考证方向:实现WEB负载均衡

AWS 负载均衡器返回 403 响应?

负载均衡方案(摘抄)

负载均衡方案(摘抄)

负载均衡方案(摘抄)