Domain-Name-System

放置 DNS 記錄和子域的最佳實踐

  • May 4, 2011

假設我有mydomain.com

使用選項 A 是否更好:

[A] mydomain.com      123.45.67.89
[A] www.mydomain.com  123.45.67.89

或選項 B:

[A]     mydomain.com      123.45.67.89
[CNAME] www.mydomain.com  mydomain.com

一個接一個地選擇實際上會產生什麼影響?

第二個問題是,假設我想在blog.mydomain.com擁有子域。我將其設置為 A 記錄,如下所示:

[A] blog.mydomain.com  123.45.67.89

為了在使用者輸入www.blog.mydomain.com時也可以訪問它,我還插入了以下記錄:

[A] www.blog.mydomain.com  123.45.67.89

問題是,這是一種常見的做法嗎?還是有更好的方法來做到這一點?我想要實現的是(使用者訪問 - >重定向到):

mydomain.com          -> mydomain.com
www.mydomain.com      -> mydomain.com
blog.mydomain.com     -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com    -> error

乾杯!

通常,為了便於維護,最佳實踐是這樣的:

[A]     mydomain.com            123.45.67.89
[CNAME] www.mydomain.com        mydomain.com
[CNAME] blog.mydomain.com       mydomain.com
[CNAME] www.blog.mydomain.com   mydomain.com
[A]     mail.mydomain.com       123.45.67.89
[MX]    mydomain.com            mail.mydomain.com

這使您可以更改 mydomain.com 的 A 記錄,而不會破壞您的郵件記錄或不必手動更改每個子域。

您還需要設置您的網路伺服器來回答這些名稱。這是在 Apache 中這樣做的一個範例:

NameVirtualHost 123.45.67.89:80
<VirtualHost 123.45.67.89:80>
   DocumentRoot /var/www/html/mydomain.com
   ServerName mydomain.com
   ServerAlias www.mydomain.com
   ErrorLog logs/mydomain.com-error_log
   CustomLog logs/mydomain.com-access_log combined
</VirtualHost>

<VirtualHost 123.45.67.89:80>
   DocumentRoot /var/www/html/blog.mydomain.com
   ServerName blog.mydomain.com
   ServerAlias www.blog.mydomain.com
   ErrorLog logs/blog.mydomain.com-error_log
   CustomLog logs/blog.mydomain.com-access_log common
</VirtualHost>

對於您提到的重定向:

問題是,這是一種常見的做法嗎?還是有更好的方法來做到這一點?我想要實現的是(使用者訪問 - >重定向到):

mydomain.com          -> mydomain.com
www.mydomain.com      -> mydomain.com
blog.mydomain.com     -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com    -> error

要實際更改顯示在客戶端地址欄中的 URL,需要在伺服器端使用 mod_rewrite 完成,這不是 DNS 的功能。

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