我不知道为什么我很难找到一个相当常见的任务的简单答案。我确信有简单的答案,我可能没有问对问题。我显然不是服务器管理员,但我通常可以在需要时找出基本任务(除了这个)。
我有一个网站 - example.com - 我在 shopify 上使用它。
我想在 try.example.com 上开发我的登陆页面,并希望将其托管在 Digital Ocean 上。
- 我如何将 cname 指向数字海洋服务器?显然,我需要在数字海洋服务器上设置某种主机名,然后指向该主机名?
- 域名指向后,如何处理其文件?是否与简单地创建虚拟主机来处理它们相同?
如果这个问题看起来很基础,我很抱歉,但我正在努力学习,但我不知道该搜索什么。我知道这是可能的,因为我已经将我域中的其他 cname 指向其他服务。
任何帮助都非常感谢。任何起点都应该可以帮助我入门。
答案1
答案2
这分为两个部分。
DNS 查找
浏览器(或其他用户代理)想知道对于给定的域名要连接到哪个 IP 地址。它正在寻找A
或AAAA
记录。如果它收到一条CNAME
记录,它就会去那里询问。
询问:
nslookup service.example.com
A
或AAAA
记录是干什么的service.example.com
?
回复:
service.example.com IN CNAME host.example.net
service.example.com
有全部和 的记录一样host.example.net
。去那里问吧。
浏览器现在将去查找host.example.net
。
HTTP 连接
一旦浏览器获得了服务器的 IP 地址,它就会尝试连接该服务器。在Host
标头中(SNI
如果您使用 TLS,则在标头中),它会告诉您它正在寻找哪个主机:
Host: service.example.com
它仍然是它寻找的那个原始的。它将不是说它正在寻找host.example.net
。
A
您对 vhost 的设置完全是标准的。浏览器是通过直接记录AAAA
还是通过查找获取 IP 地址无关紧要CNAME
。无论哪种方式,浏览器都会以相同的方式连接到服务器。
答案3
您在为 example.com 创建 CNAME 时可能会遇到问题的原因之一是您无法在域的顶级创建 CNAME。
因此,您无法为 example.com 创建指向 host.example.com 的 CNAME。
这是来自RFC1912 第 2.4 节:“CNAME 记录不允许与任何其他数据共存。”