В настоящее время я работаю над веб-платформой, которая будет использоваться для поддержки множества небольших веб-сайтов. Все веб-сайты будут размещены на этой платформе либо на выделенном сервере, либо на VPS. Я не хочу предоставлять полный сервис DNS-хостинга, брать на себя ответственность за маршрутизацию электронной почты и т. Д., Я хочу отвечать только за часть доменов «веб-сайт».
Очевидное решение этой проблемы - указать «www» A-записи доменов на IP-адрес моего сервера, что даст желаемый эффект. Однако что, если мой сервер выйдет из строя и мне нужно будет переключить все сайты на резервную копию на другом сервере с другим IP? Мне нужно связаться со всеми поставщиками DNS для всех разных доменов и заставить их перенаправить свои записи A. Это нежелательно.
Итак ... вопрос в том, есть ли разумный подход к тому, чтобы справиться с чем-то вроде этого, или мне лучше просто перекусить и предложить полные службы DNS через выделенный сервис, такой как Cloudfare или DYN?
Спасибо за любые советы / решения.
Я не уверен, что могу описать это как крепкий. Это будет включать в себя несколько внутренних серверов, пару отказоустойчивых балансировщиков нагрузки на переднем конце, резервный сайт с версией того же без HA и использование IP-адресов, которые вы можете переключать между сайтами в случае возникновения достаточно большой аварии. .
Но при условии, что вы хотите предоставить веб-хостинг без всего этого, без контроля DNS ваших клиентов, но с сохранением возможности перенаправления операций на второй сайт, если возникнет необходимость, без необходимости связываться со всеми вашими клиентами, чтобы они обновили свои DNS, один способ сделать это с CNAME
с. Для пояснения предположим, что ваш сервер находится на IP-адресе, на который указывает A
запись server.example.com
. Допустим, у вас есть два клиента, чьи доменные имена example.org
и example.net
.
Каждый клиент публикует CNAME
запись для их имени хоста www, указывающего на ваш сервер:
www.example.org. IN CNAME server.example.com.
www.example.net IN CNAME server.example.com.
Если вам нужно изменить IP-адрес вашего сервера, вы измените A
запись для server.example.com
, который находится под вашим контролем, и по истечении подходящего интервала для кэширования DNS, www.example.{org,net}
начнет разрешаться на новый адрес.
Проблема здесь в голых доменах. Как хорошо известно вокруг этих частейты не можешь CNAME
корень домена. Итак, пока клиенты счастливы иметь свой веб-сервер исключительно на www.example.org
, ты в порядке. Но как только вы попросите веб-сервис на example.org
, у тебя проблемы.
Однако Майкл Хэмптон указывает, что некоторые крупные поставщики DNS (он явно перечисляет Namecheap и GoDaddy, хотя это не следует воспринимать как одобрение любого из них) также будут предоставлять услугу веб-перенаправления, где запись A в голом домене указывает на то DNS-провайдера веб-сервер, единственная функция которого - получать запросы браузера клиента для http://example.org/foo
и перенаправить их через HTTP 301-redirect на http://www.example.org/foo
, после чего уже описанный механизм вступает во владение, и запрос удовлетворяется вашим сервером. Клиентам, которые настаивают на обслуживании своих корней, можно сказать, что они должны получить свой DNS от провайдера, который предлагает такую возможность.
Это по-прежнему не будет работать для клиентов, которым также нужна служба HTTPS на своих корнях (например, https://example.org/bar
); Я не знаю, как добиться этой работы без значительного расширения инфраструктуры. Но вы должны быть в порядке, обслуживая всех остальных, как описано выше.