Apache-2.2
對 CNAME 和子域感到困惑
我有一個位於 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。
希望這一切都說得通。