Bind
如何配置多級子域 DNS 記錄
我已經為我的應用程序的階段伺服器配置了 DNS 記錄,以便當有人訪問
stage.example.com
並www.stage.example.com
工作時。(實際上,如果他訪問第一個,網路伺服器會將他重定向到第二個。)我的這個設置的區域配置文件是:
@ 10800 IN A 1.2.3.4 stage 10800 IN CNAME example.com. www.stage 10800 IN CNAME example.com.
它有效。
現在我想用相同的行為(同時允許
www.example.com
和example.com
)配置我的實時伺服器,同時保持有關階段子域的現有功能,但我無法找出正確的方法 - 或者它是否可能。我所有的搜尋最終都出現在為一級子域配置它的範例中,所以我在這裡有點迷失了。
例如以下配置是我認為我想要的,但它不起作用
example.com 10800 IN A 5.6.7.8 stage.example.com 10800 IN A 1.2.3.4 www 10800 IN CNAME example.com. www.stage.example.com 10800 IN CNAME stage.example.com.
任何想法/建議都是最受歡迎的。
先感謝您。
從Tedwin 的回答和第一個搜尋結果開始,並將它們與幾個
dig
s 結合起來,我解決了我的主要困惑點:配置左側的名稱將父域附加到它們 - 除非已經包含。
所以,這個配置
live 10800 IN A 5.6.7.8 stage 10800 IN A 1.2.3.4 www 10800 IN CNAME live www.stage 10800 IN CNAME stage
產生這些探勘結果:
$ dig www.example.com ;; ANSWER SECTION: www.example.com. 375 IN CNAME live.example.com. live.example.com. 375 IN A 5.6.7.8
和
$ dig www.stage.example.com ;; ANSWER SECTION: www.stage.example.com. 375 IN CNAME stage.example.com. stage.example.com. 375 IN A 1.2.3.4
所以為了讓我讓它按我的意願工作,我所要做的就是更換
live 10800 IN A 5.6.7.8
和
@ 10800 IN A 5.6.7.8
我認為您不需要將 .example.com 附加到配置的第二行和最後一行。您的 DNS 伺服器已經知道您正在處理 .example.com,因為它是父域。
所以我相信你需要改變:
example.com 10800 IN A 5.6.7.8 stage.example.com 10800 IN A 1.2.3.4 www 10800 IN CNAME example.com. www.stage.example.com 10800 IN CNAME stage.example.com.
到:
example.com 10800 IN A 5.6.7.8 stage 10800 IN A 1.2.3.4 www 10800 IN CNAME example.com. www.stage 10800 IN CNAME stage.example.com.
因此,您將擁有一個解析為 5.6.7.8 的 www.example.com 的 CNAME 和一個解析為 1.2.3.4 的 www.stage.example.com 的 CNAME。
似乎您還需要域的 @ 記錄,就像您在問題的第一個程式碼片段中顯示的那樣。