我是一名软件开发人员,我正在寻找购买一个域,以便我可以托管我当前和未来的项目。我已经进行了研究,但由于我仍然不确定我是否理解正确,所以我在这里寻求帮助。
假设我购买了一个 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 本身,然后将 CNAME 记录创建到 url,我将在这样做时给出。为什么会这样,为什么正常的 url 不起作用?还是我真的不明白什么?
这是一个非常普遍的误解。A
CNAME
不执行 HTTP重定向,也不创建 Web 服务器的别名。它只是告诉A
您可以在其他地方找到 DNS 记录。Web 服务器仅通过标头获取浏览器地址栏中的原始主机名
Host
。Web 服务器与 DNS 基础设施没有任何连接,即它根本不检查任何CNAME
记录。因此,Web 服务器需要知道主机名(即配置的属性)才能提供正确的内容(虚拟主机)。