我是一名软件开发人员,我想购买一个域名,以便托管我目前和未来的项目。我已经做过研究,但由于我仍然不确定我是否理解正确,所以我在这里寻求帮助。
假设我购买了一个 example.com 域名。由于 DNS 系统是分层的,我现在还拥有 example.com 的所有子域名,例如 a.example.com、b.example.com 和 abcexample.com。因此,对于我想要部署的每个新项目,我都可以分配一个 projectname.example.com 域名。
为了行使此所有权,我通过注册商获得了 .com 域名注册局的 NS 记录访问权限,因此我可以设置负责解析我的域名的 DNS 服务器。默认情况下,这将是注册商为我提供的服务器。
当我将应用程序部署到云中时,我会获得一个 URL,例如 project1.heroku.com。要重定向流量,我只需创建从 project1.example.com 到 project1.heroku.com 的 CNAME 或 ALIAS 记录即可
但是根据 Heroku 文档,我需要将域名添加到 heroku 本身,然后为 URL 创建 CNAME 记录,这样做后我会得到这个记录。为什么会这样,为什么普通的 URL 不起作用?还是我真的不明白什么?
答案1
这是一个非常常见的误解。ACNAME
不执行 HTTP重定向也不会创建 Web 服务器的别名。它只是告诉您 DNSA
记录可以在其他地方找到。
Web 服务器仅通过标头获取浏览器地址栏中的原始主机名Host
。Web 服务器与 DNS 基础设施没有任何联系,即它CNAME
根本不检查任何记录。因此,Web 服务器需要知道主机名(即配置的属性)才能提供正确的内容(虚拟主机)。