Управление DNS-серверами... что мне нужно знать
Я скорее парень из stackoverflow.com, но сталкиваюсь с чем-то интересным. Я разрабатываю приложение, которое будет управляться после его публикации (надеюсь, в начале следующего года)...
Моя цель состояла в том, чтобы http://domain.com/ был сайтом для брошюр и http://client.domain.com/ в качестве хоста, на который клиент входит. Надежда на то, что 1 клиент на 1 базу данных, а не все клиенты в одной базе данных. облегчает масштабирование световых лет. нужно больше масштабировать, добавить еще несколько серверов в ферму.
Исходя из моих обширных исследований, лучшие методы для этого - использование какого-либо сервера имен для размещения "хостов", а затем настройка окна iis, которое может считывать заголовки и передавать его в приложение, которое может контролировать соединения с базой данных., так далее.
Мне было интересно... Я знаю, что могу использовать WMI для программного управления серверами имен, если все основано на Windows, но разве это лучший метод? Я собираюсь столкнуться с кучей головных болей? Может кто-нибудь предложить достойную конфигурацию, которая может быть использована для этого лучше? Я загружаю программное обеспечение, поэтому у меня есть ограниченные ресурсы, чтобы его запустить.
Спасибо.
5 ответов
Почему бы не использовать www.domain.com в качестве сайта для брошюр, а вместо этого использовать www.domain.com/client в качестве сайтов для отдельных клиентов?
Когда вы начнете использовать SSL, это позволит избежать стоимости подстановочного сертификата и т. Д. И выведет вас из бизнеса DNS.
Процесс называется "прозрачное перенаправление" или виртуальный хостинг. Это просто означает, что вы будете подключены к другому веб-сайту в зависимости от того, какой URL запрашивается в заголовке HTTP.
В Apache это тривиально. А возможно в IIS смотрите: http://www.simpledns.com/kb.aspx?kbid=1149
Для client.domain.com и client2.domain.com требуется 2 записи DNS, поэтому для каждого URL потребуется новая запись. Вам придется управлять ими для каждого клиента.
Другой способ сделать это - использовать подпапку, а не другой виртуальный хост. Это будет означать отсутствие дополнительных записей DNS. Настоящее преимущество
например, www.domain.com/client и www.domain.com/client2
Вы можете указать каждую подпапку на отдельном сайте для каждого клиента и, следовательно, различный набор данных. Я не уверен, разрешит ли IIS вам прозрачно передавать его через прокси на другой сервер или нет, но вы могли бы разместить сервер балансировки нагрузки перед вашим веб-сервером для отправки запросов на разные серверы. В любом случае, все это очень возможно и не так сложно.
Простейший способ сделать это - просто использовать запись с подстановочными знаками, а затем заставить веб-сервер разбирать запросы?
Настройте запись DNS для *.example.com
и затем, используя IIS (я предполагаю), свяжите ваш сайт с брошюрой example.com
а также www.example.com
а затем сопоставьте свои приложения одно за другим с другими сайтами (client1.example.com, client2.example.com) и т. д.
Таким образом, вы управляете только привязками IIS, а не DNS, а также потому, что подстановочный знак - это сопоставление с наименьшим рейтингом для записи DNS, если вам нужно создать запись A или CName для чего-то другого (скажем, support.example.com
), подстановочный знак будет ранжироваться ниже, чем эта запись.
Выполнение простой настройки DNS на самом деле не очень сложно. Я бы, однако, поддержал предложение ErikA провести серьезное исследование (DNS & Bind от O'Reilly всегда хорошее начало), прежде чем пытаться запустить его самостоятельно.
Я бы определенно сказал, что стоит сделать так, если вы:
- иметь устойчивое, отказоустойчивое интернет-присутствие
- может потратить достаточное количество времени на изучение преимуществ выбранного вами решения DNS
Лично я работал с bind с несколькими представлениями около 8 лет и добился очень хороших результатов. Недавно я начал изучать PowerDNS с бэкэндом mysql и poweradmin для руководства, чтобы попытаться уменьшить кривую обучения моего резервного сотрудника. Кажется, очень быстро и просто, как только он настроен.
PowerDNS может использовать базу данных для хранения информации о вашей зоне. В этом случае все, что вам нужно сделать, чтобы добавить поддомен, это просто вставить строку в базу данных. Он поддерживает множество баз данных. Излишне говорить, что вставка SQL очень проста для достижения программных целей.
Я предупреждаю вас, хотя... хостинг DNS не для слабонервных. Вы бы хорошо поработали над чтением, исследованиями и тестированием на своих серверах, прежде чем запускать их в производство. Поэтому я настоятельно рекомендую вам использовать для этого стороннюю службу DNS. Многие из них имеют открытые API, которые можно использовать для управления записями DNS для вашей зоны. DNSmadeeasy и Dyndns - два, которые приходят на ум, которые разрешают доступ API. Эти компании зарабатывают на хостинге DNS. Они знают, что делают, и они относительно дешевы. Зачем подвергать себя риску и потере времени хостинга DNS самостоятельно, когда у вас есть возможность передать его на аутсорсинг?