2009-11-18 3 views
5

В настоящее время у меня есть собственное доменное имя и выделенный сервер, и я предлагаю своим клиентам разные пакеты. То, что я хочу сделать, - это зарегистрировать их на моем веб-сайте и автоматически создать пакет, через который они смогут получить доступ через свое имя пользователя в качестве поддомена, например.Субдомены и DNS

http://yourusername.mywebsite.com

я в настоящее время записи DNS, установленную для различных подобластей с реальной информацией для моего сайта, например,

Имя Тип IP-адрес
@ A 1.2.3.4
ошибок 1.2.3.4
поддержка A A 1.2.3.4

Однако, если новый клиент подписывает на данный момент у меня есть чтобы перейти и вручную создать для них запись с их именем пользователя.

Я уверен, что видел веб-сайты, которые это делают автоматически, есть ли у кого-нибудь идеи или какие-либо другие методы, которые я должен использовать?

Спасибо,
Марк

ответ

3

Детали зависят от того, сервер DNS вы используете.

Один из подходов состоит в том, чтобы иметь некоторый код, который открывает файл зоны DNS и добавляет нужные записи. В Linux с Bind вам нужно будет сообщить серверу, чтобы он перечитал файл зоны.

+0

Ах, я вижу, так это то, что делается с помощью самого DNS-сервера? В настоящее время я просто использую 123-reg.co.uk и указываю свои серверы имен на записи, которые они мне рассказывали. Думаю, они, вероятно, замаскируют всю эту работу для меня, и поэтому я не буду иметь большого контроля над этим? Спасибо – ca8msm

+1

Да, сопоставление между именами доменов и IP-адресами происходит на уровне файла зоны в DNS, а поддомены находятся в пределах одного файла зоны. Некоторые провайдеры могут выступать в качестве вторичного DNS, где вы предоставляете DNS-сервер на том же компьютере, что и ваш веб-сервер, и периодически пересылаете файл зоны. После этого вы можете указать центральные серверы имен только на своем хосте, поэтому локальный DNS-сервер используется только как источник для файлов зон, а не для разрешения запросов. – RickNZ

+0

Справа: вам нужно каким-то образом контролировать главный сервер DNS.Затем у вас есть несколько методов, редактирование файла зоны, использование динамического обновления DNS, INSERTing в СУБД, в зависимости от используемого вами программного обеспечения сервера имен. – bortzmeyer

1

С помощью Simple DNS Plus вы можете легко добавить такую ​​запись DNS через включенный HTTP API. Например:

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

Дополнительная информация: только окна, коммерческое решение с бесплатной пробной версией. –

8

Поскольку вы, по-видимому, не контролируете серверы имен, ваш выбор весьма ограничен. Одна из возможностей заключается в использовании подстановочной DNS-записи:

 
* A 192.0.2.1 

где звезда заменяет каждое имя. Не идеально (появятся и существующие сущности).

+1

Очень интересный подход. Помимо несуществующих доменов, отправляемых на 192.0.2.1 (так что пользователь получает 404 вместо того, чтобы получать сообщение об отсутствии имени сервера, существуют ли другие недостатки? Могло ли это оказаться более эффективным, чем листинг, скажем, 20 000 записей A и необходимость перезапускать связывание при каждом добавлении? –

0

Поскольку вы, по-видимому, не контролируете серверы имен, ваши варианты весьма ограничены. Тем не менее, каждый серьезный DNS-хостер предоставляет вам API (см., Например, Slicehost's API). Таким образом, вы можете использовать этот API и написать небольшую программу для обновления данных DNS.

(сноска: обработка платежеспособных клиентов, когда вы даже не контролировать имя сервера, кажется ... плохо)

+0

OTOH, получение профессиональной компании для запуска вашего DNS вместо того, чтобы притворяться, что вы можете сделать работу самостоятельно, кажется ... хорошим ;-) –