Domain-Name-System

如何正確地將域添加到 Heroku

  • December 27, 2020

我是一名軟體開發人員,我正在尋找購買一個域,以便我可以託管我目前和未來的項目。我已經進行了研究,但由於我仍然不確定我是否理解正確,所以我在這裡尋求幫助。

假設我購買了一個 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 不起作用?還是我真的不明白什麼?

這是一個非常普遍的誤解。ACNAME不執行 HTTP重定向,也不創建 Web 伺服器的別名。它只是告訴A您可以在其他地方找到 DNS 記錄。

Web 伺服器僅通過標頭獲取瀏覽器地址欄中的原始主機名Host。Web 伺服器與 DNS 基礎設施沒有任何連接,即它根本不檢查任何CNAME記錄。因此,Web 伺服器需要知道主機名(即配置的屬性)才能提供正確的內容(虛擬主機)。

引用自:https://serverfault.com/questions/1047681