![弹性负载均衡器 + 域设置](https://linux22.com/image/564569/%E5%BC%B9%E6%80%A7%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1%E5%99%A8%20%2B%20%E5%9F%9F%E8%AE%BE%E7%BD%AE.png)
如何将 ELB(弹性负载均衡器)分配给我的域。我需要为主域(即 domain.com)还是子域(www.domain.com)执行此操作。我的注册商是 godaddy - 我该怎么做?- 最推荐的方法是什么?
我稍后还想将流量从非 www 重定向到 www(通过 IIS 进行 301 重定向)或反之亦然,并且我需要它正常工作。
答案1
如果您使用 AWS 的 Route53 和 ELB,那么将指向 ELB CNAME 记录不是问题example.com
。除此之外,它必须由服务而不是通过 DNS 来完成,因为RFC 1034 第3.6.2节第3段内容如下:
... 如果节点上存在 CNAME RR,则不应存在其他数据;这确保了规范名称及其别名的数据不会不同。此规则还确保可以使用缓存的 CNAME,而无需与权威服务器核对其他 RR 类型。
换句话说,它表明您不能将 CNAME RRset 与任何其他 RRset 放在一起,并且域名记录至少需要 2 个 RRset(SOA 和 NS),从而使其与 CNAME RRset 互斥。
GoDaddy 通过在其 DomainManager 上提供域信息的详细信息来解决这个问题Forwarding
。这会更新您域的 DNS 记录以指向他们的一个服务器,并将基于 Web 的域请求重定向到另一个 URL。我将此功能用于我在 GoDaddy 托管并在 AWS ELB 后面运行的几个域。您只需将条目指向www.example.com
您的 ELB CNAME RRset,然后启用转发,它就会按预期重定向。
如果要在不使用 GoDaddy 的情况下实现相同的功能,您必须拥有一个具有静态 IP 的主机或具有 EIP 的 EC2 实例,运行 Apache 或其他 Web 服务器,只需发出 301 或 302 重定向即可www.example.com
。我还发现简易DNS还提供了 URL 转发功能,似乎提供与 GoDaddy 相同的功能,但我还没有机会尝试。