Apache-2.2

對 CNAME 和子域感到困惑

  • August 21, 2012

我有一個位於 exampleapplication.com 的應用程序。這是一個位於 Apache/Passenger 堆棧上的 Rails 應用程序。

該應用程序設置為使用子域約束來指向使用者帳戶(例如 user1.exampleapplication.com)。

我希望使用者能夠透明地將他們自己的域指向他們的子域。

所以 exampleuser.com 指向 exampleuser.exampleapplication.com。

我已經為 exampleapplication.com 設置了一條 A 記錄以指向我的伺服器。我已經為 exampleuser.com 設置了一個帶有 A 記錄的 DNS 區域,以指向伺服器。

我將 CNAME 記錄放在哪個區域?

不確定您的設置到底是什麼,但您可以通過以下兩種方式之一進行操作。您當然可以為每個帳戶創建 CNAMES,但如果您知道您的域僅用於客戶帳戶,只需設置萬用字元 CNAME,*.exampleapplication.com那麼任何請求,無論子域如何,都將始終指向您的應用程序。您的應用程序必須足夠聰明才能確定正在登錄的使用者,但您明白了。

您的 CNAME 應始終託管在您的 DNS 區域中。但是,我實際上建議為此創建 A 記錄。所以你可能有以下情況:

- A exampleapplication.com       -> 123.123.123.123
- A user1.exampleapplication.com -> 123.123.123.123
- A *.exampleapplication.com     -> 123.123.123.123

它節省了二次查找來解析第一個域,然後也為您的 exampleapplication.com 域解析 A 記錄。

然後,您的客戶端可以簡單地在其 DNS 區域中創建一個 CNAME 以指向 user1.exampleapplication.com。

希望這一切都說得通。

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