假设我有一个顶级域名
domain-X.com,DNS A 记录指向 IP 1.2.3.4
然后我拥有域名,我可能无法控制它们,它们属于客户,客户拥有它们并且可能有不同的提供商等。
域名-A.com、域名-B.com、域名-C.com
我希望这三个域名也指向 IP 1.2.3.4,但我不想将每个域名的 DNS A 记录设置为数字 IP,而是以某种方式将它们指向“domain-X.com 的 IP“ ... 这可能吗?
它需要工作,以便 domain-X.com 上的应用程序知道请求来自哪个 URL(域)(域名-A.com),并且用户仍然应该在浏览器中查看 domain-A.com/something 而不是 domain-X.com/something。
这可能吗?如果不可能,还有哪些其他解决方案?问题是可能有超过 3 个域,我想将它们指向一个 IP 地址,为这些域提供服务的 Web 应用程序将位于该 IP 地址。应用程序需要知道请求的原始 URL。但是当 IP 发生变化时(因为例如我必须将应用程序从一个 ISP 的一个 VPS 移动到另一个 ISP 等),那么更改所有这些域中的 DNS 记录可能会非常麻烦……
谢谢任何提示和帮助。
编辑:将 CNAME 域 A 设置为域 X 的建议答案不正确,因为 CNAME 记录不能毫无问题地设置为顶级域(仅子域)。请参阅域名顶级的 CNAME 吗?
EDIT2:指向可能重复的链接也没有帮助,因为它们假设我控制着所有域 a/b/c/etc 域的 DNS 记录。事实上,每个域可能由不同的客户/客户拥有,并且由不同的提供商提供。我想要的只是能够轻松地指向运行我的 Web 应用程序的 IP,并避免将来在必须将我的 Web 应用程序移动到不同的托管等时出现问题。然后更改所有 DNS 记录可能会有问题...
我刚刚发现有“虚拟 IP”之类的东西。这有帮助吗?
我想到另一个想法是......从不同的角度解决这个问题......有什么策略可以长时间拥有一个 IP?
答案1
编辑:这个答案可能无效。
添加CNAME
这样的记录:
domain-A.com CNAME domain-X.com
这意味着在域名解析期间,客户端首先解析domain-A.com
,然后 DNS 服务器注意到它是CNAME
的记录domain-X.com
并返回 的 IP 地址domain-X.com
。
因此,客户端获取 IP 地址并仍显示domain-A.com
在地址字段中。
必须配置 Web 服务器,以便每个域都有单独的虚拟主机,或者没有与域名匹配的虚拟主机。
答案2
编辑:正如您警告我们的那样,根据 RFC1912:“CNAME 记录不允许与任何其他数据共存”。这就是我要更改答案的原因。
我不想将每个域的 DNS A 记录设置为数字 IP,而是以某种方式将它们指向“domain-X.com 的 IP”...这可能吗?
1)如果这对您来说不是问题,请为您的应用创建一个专用子域并将其指向domain-x.com。
domain-x.com. IN A 1.2.3.4
app.domain-a.com. IN CNAME domain-x.com.
2)一些 DNS 服务提供商允许在域名上执行此技巧,请检查这些答案,有一个列表。
用户在浏览器中看到的仍是 domain-A.com/something,而不是 domain-X.com/something
如果您没有执行 HTTP 重定向,那就没问题。
应用程序需要知道请求的原始 URL。
这取决于你如何设置,但原始主机在标题HTTP 请求。