2009-11-18 108 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