我有一个比较独特的问题。对于域名 (example.com),我希望人们访问 www.example.com,但是我也将 GSLB 混入其中。对于 GSLB,设备(每个数据中心一个)需要成为他们将要回答的域名部分的名称服务器(www.example.com),因此我知道我可以很好地创建 www.example.com 的 NS 记录并使其指向每个 GSLB 设备。但是,这仅适用于 www.example.com,而不适用于 example.com。我不想将 example.com 的根 NS 设为我的 GSLB,因为我的企业管理 DNS 提供商在所有 DNS 工作方面都做得非常出色。有什么想法吗?
答案1
您需要设置一个 Web 服务器example.com
并进行重定向。我建议重定向为 301(永久)而不是 302(临时),因为从 SEO 的角度来看,您希望任何链接到 都example.com
算作链接www.example.com
。有些服务可以为您处理重定向,或者您可以自己处理。
基于 CNAME 的解决方案不是最优的,因为 1) 从技术上讲,当您有其他记录时,您不能拥有 CNAME,2) 您会在两个不同的地址显示相同的内容,而搜索引擎不喜欢这样。
答案2
克服 DNS 中的这一限制的常用方法是提供从 example.com 到 www.example.com 的 HTTP 302 重定向。
以下是基于 RFC 的限制:
CNAME 不得具有其他类型的资源记录(MX、A 等),如 RFC 1034 第 3.6.2 节和 RFC 1912 第 2.4 节所规定。例外情况是使用 DNSSEC 时,在这种情况下可以存在与 DNSSEC 相关的记录,例如 RRSIG、NSEC 等。(RFC 2181 第 10.1 节)
应避免使用指向其他 CNAME 记录的 CNAME 记录。特别是,CNAME 记录可能会产生无限循环和其他错误情况。RFC 1034 第 5.2.2 节。
指向其他名称的其他 DNS 记录类型(如 NS、MX、PTR、SRV 等)绝不应指向 CNAME。RFC 1034 第 3.6.2 节、RFC 1912a 第 2.1 节。
答案3
使用 Web 服务器的重定向,并在 DNS 中将 CNAME www 定义为 example.com。
答案4
A别名记录记录应该能够将对 example.com 的请求重定向到 www.example.com。