2009-11-18 128 views
5

我目前有我自己的域名和專用服務器,我向客戶提供不同的包。我希望能夠做的是讓他們在我的網站上註冊並自動創建一個包,以便他們可以通過他們的用戶名作爲子域來訪問,例如子域名和DNS

http://yourusername.mywebsite.com

我目前已建立了與真實信息的各種子域爲我的網站例如DNS條目

名稱類型IP地址
@阿1.2.3.4
一個錯誤1.2.3.4
支持一個1.2.3.4

但是,如果新客戶簽約的那一刻我有去他們用他們的用戶名爲他們手動創建一個條目。

我確定我已經看到網站設法自動執行此操作,有沒有人有任何想法如何,或者我應該使用任何其他方法?

謝謝,
馬克

回答

3

細節取決於你使用的DNS服務器。

一種方法是有一些代碼打開DNS區域文件並添加所需的記錄。在帶綁定的Linux上,您需要發信號通知服務器重新讀取區域文件。

+0

啊,我明白了,所以這一點是通過DNS服務器本身做了什麼?我目前只是使用123-reg.co.uk,並在他們告訴我的條目上指出我的名稱服務器。我想他們可能會爲我掩蓋所有這些工作,因此我不會對此有太多的控制權?謝謝 – ca8msm 2009-11-18 13:26:18

+1

是的,域名和IP地址之間的映射發生在DNS中的區域文件級別,並且子域名位於單個區域文件中。某些提供商可以充當輔助DNS,您可以在與Web服務器相同的計算機上提供DNS服務器,並定期傳輸區域文件。有了這些,您就可以將中央名稱服務器指向您的主機,因此本地DNS服務器僅用作區域文件的來源,而不用於解決查詢問題。 – RickNZ 2009-11-18 22:13:01

+0

右鍵:您需要以某種方式控制DNS主服務器。然後,您可以使用多種技術,編輯區域文件,使用DNS動態更新,插入到DBMS中,具體取決於您使用的名稱服務器軟件。 – bortzmeyer 2009-11-20 07:46:50

1

使用Simple DNS Plus,您可以通過包含的HTTP API輕鬆添加這樣的DNS記錄。例如:

http://127.0.0.1:8053/updatehost?host=yourusername.mywebsite.com&data=1.2.3.4 
+3

額外信息:僅限Windows,商業解決方案免費試用。 – 2012-03-19 01:57:25

8

由於您顯然不控制名稱服務器,因此您的選擇非常有限。一種可能是使用通配符DNS記錄:

 
* A 192.0.2.1 

其中星號將替換每個名稱。不理想(也會出現不存在的域)。

+1

非常有趣的方法。除了不存在的域被髮送到192.0.2.1(所以用戶獲得一個404而不是給出有關服務器名稱不存在的錯誤)是否還有其他缺點?它可能會比列表更有效率,比如說,20,000條記錄,並且每次添加時都必須重新啓動綁定? – 2012-03-19 02:01:49

0

由於您顯然不控制名稱服務器,因此您的選擇非常有限。儘管如此,每個嚴重的 DNS主機提供給您一個API(請參閱Slicehost's API)。所以,你可以使用這個API並編寫一個小程序來更新DNS數據。

(腳註:處理付費用戶時,你甚至不控制服務器似乎名稱...壞)

+0

OTOH,讓專業公司運行你的DNS而不是假裝你自己可以做這項工作似乎......好;-) – 2012-03-19 01:55:47