- Перенос сайта на другой сервер: как прописать DNS домена
- Что нужно знать, чтобы перенаправить домен на новый сервер
- Где находится DNS домена
- Как настроить DNS
- Если домен делегирован на Яндекс.Коннект
- Если домен делегирован на хостинг
- Перенос сайта на другой сервер того же хостера
- Перенос сайта на другой хостинг
- Шаг 1: Перенос DNS на другой сервер
- Шаг 2: Проверка MX-записей домена
- Шаг 3: Настройка NS-записей
- Домашний хостинг сайтов с динамическим IP
- Что делать?
- Используем сервисы которые предоставляют нам DNS-хостинг
- Используем собственный DNS-сервер в связке с DDNS-доменом
- Вывод
Перенос сайта на другой сервер: как прописать DNS домена
В этой статье расскажем, как перенаправить домен на другой сервер незаметно для всех пользователей сайта и без последствий для корпоративной почты.
Перенос сайта на новый сервер кроет в себе немало рисков, в частности на последних шагах, когда новая площадка уже настроена и осталось только перенаправить на нее домен — из-за неправильных действий может временно перестать работать не только сайт, но и вся корпоративная почта на домене. Представьте, насколько критична для бизнеса остановка притока новых обращений и работы уже с действующими клиентами!
В этой статье расскажем, как перенаправить домен на другой сервер незаметно для всех пользователей сайта и без последствий для корпоративной почты. Если вы еще ни разу этого не делали, то из статьи узнаете, как должна происходить смена DNS, какие подводные камни бывают, и как при этом избежать неприятностей и не нанести владельцу сайта материальный ущерб.
Что нужно знать, чтобы перенаправить домен на новый сервер
Для начала разберемся, как в интернете устроена работа сайтов. Если говорить совсем просто, сайт — это набор файлов и папок, который лежит на отдельном компьютере определенной мощности — сервере, а сама услуга предоставления такого компьютера для размещения сайта в интернете называется хостинг.
У каждого сайта есть доменное имя (Domain), которое отображается в строке браузера, например, liderpoiska.ru, и IP-адрес — уникальный сетевой адрес сервера, например, 37.139.7.16. Они связаны между собой посредством DNS (Domain Name System) — эта система доменных имен, как секретный агент, по имени домена вычисляет, по какому IP-адресу проживает конкретный сайт.
Схема работы DNS-сервера
Смена хостинга или сервера хостера влечет за собой смену IP-адреса сайта, поэтому важно правильно прописать ресурсные записи домена, чтобы он ссылался на корректный IP-адрес. В противном случае, люди не смогут найти этот сайт в сети, при переходе на сайт человек увидит вот такой алерт:
Таким образом, чтобы направить домен на новый IP-адрес, нам нужно знать:
- Доступ к панели управления доменом (в личный кабинет регистратора домена). Им может выступать nic.ru, reg.ru, webnames.ru и т.д.
- Новый IP-адрес размещения сайта.
- Провайдера DNS, который позволит отредактировать DNS-записи домена. Если вы пока не понимаете, о чем тут речь, то следующая глава поможет вам разобраться.
- Есть ли корпоративная почта на домене. Например, для сайта liderpoiska.ru корпоративная почта выглядит, как info@liderpoiska.ru. Если такая почта есть, то нужно также узнать сервер, принимающий почту для вашего домена — это может быть Яндекс, Google, хостер или сторонний почтовый сервер.
Где находится DNS домена
Для начала разберемся, как узнать DNS-провайдера, чтобы понять, где хранится DNS. Для этого достаточно вбить домен сайта в сервис Whois и посмотреть значение в строках nserver:
Наиболее часто встречаются значения:
- dns1.yandex.net, dns2.yandex.net — домен делегирован на Яндекс.Коннект.
- в записях просматривается название хостера, например ns3.nic.ru, ns1.firstvds.ru, ns1.beget.com, ns1.reg.ru и другие — провайдером DNS является соответствующий хостер и/или регистратор домена: nic.ru, firstvds.ru, beget.com, reg.ru.
- в строке читается комбинация символов AWSDNS — провайдер Amazon.
Встречаются и другие значения, но в любом случае можно скопировать строку nserver и загуглить ее, чтобы выйти на провайдера DNS.
Как настроить DNS
Мы выяснили, где меняются ресурсные записи. Следующим шагом нужно войти в личный кабинет провайдера, чтобы изменить DNS. Дальнейшие действия зависят от провайдера, рассмотрим 2 самых распространенных варианта.
Если домен делегирован на Яндекс.Коннект
NS-записи такого вида в кабинете регистратора домена говорят о том, домен делегирован на Яндекс.Коннект, т.е. DNS-записи хранятся и редактируются в аккаунте Яндекса в настройках сервиса Вебмастер. Самое сложное в этом случае — найти доступы от аккаунта в Яндексе (вида @yandex.ru), под которым домен был заведен в Коннекте.
Чтобы изменить DNS, нужно кликнуть на «Управление DNS» соответствующего домена:
DNS-записи здесь уже заполнены, нужно только указать новый IP-адрес для записи типа А, которая связывает IP с доменным именем:
Готово! Обновление DNS-записей домена происходит в течение 72 часов, но по нашему опыту у некоторых провайдеров сайт начинает открываться уже через пару часов.
Если домен делегирован на хостинг
В личном кабинете регистратора домена можно также встретить NS-записи другого вида:
Конкретно в этом случае они означают, что домен делегирован на хостинг firstvds.ru, значит, и DNS-записи хранятся там. Дальнейшие действия зависят от того, куда переносим сайт.
Перенос сайта на другой сервер того же хостера
В этом случае в панели управления следует найти место, где меняются ресурсные записи домена, и в записи типа A указать IP-адрес нового сервера. Менять остальные DNS-записи не требуется.
Перенос сайта на другой хостинг
Если на прежнем сервере кроме этого сайта больше ничего не размещено, возникает необходимость переноса ресурсных записей на новый хостинг. Данный процесс осуществляется в несколько шагов:
Шаг 1: Перенос DNS на другой сервер
В Личном кабинете нового хостера необходимо найти место, где прописываются DNS, и прописать такие же записи, как у прежнего хостера, за исключением записи типа A — здесь нужно будет указать IP-адрес нового сервера.
Шаг 2: Проверка MX-записей домена
При переносе ресурсных записей существует опасность неправильной настройки MX-записей, которые сообщают различным почтовым программам о том, где находится нужный почтовый сервер. Если не перенести MX-записи с прежнего сервера или заполнить их некорректно, владелец сайта может остаться без почты на домене на долгий срок — он сможет отправлять письма, но входящие получать не будет. При этом отправитель письма на почтовый ящик на домене после отправки получит следующее уведомление:
Если в течение трех суток MX-записи не будут настроены правильным образом, то неполученные письма потеряются навсегда, при этом отправитель получит уведомление о том, что письмо не доставлено.
Если в указанный срок проблема все же будет устранена, то входящие письма не потеряются, а придут позже, когда DNS-серверы в интернете обменяются данными о новых DNS-записях. Обновление DNS-записей занимает от 2 до 72 часов.
Шаг 3: Настройка NS-записей
После настройки ресурсных записей необходимо указать NS-записи нового хостера в личном кабинете регистратора домена — перенаправить домен на новый хостинг. Узнать, как должны выглядеть NS-записи для нового хостинга можно в справочных материалах, который предоставляет хостер при покупке тарифа, либо обратившись в службу технической поддержки хостинга. Стоит быть особенно внимательными — при неправильном заполнении NS-записей домена сайт не заработает при обновлении DNS-серверов.
Выше мы рассмотрели ситуацию, когда DNS-записи редактируются на стороне хостера, и на прежнем сервере кроме переносимого сайта больше ничего не размещено. Существуют и другие ситуации:
- Владелец сайта хранит на прежнем хостинге несколько сайтов.
В этом случае переносить DNS-записи и перенаправлять NS-сервера домена в панели управления доменом на другой хостинг не обязательно — они могут храниться в прежнем месте. Необходимо только изменить записи типа A, указав IP-адрес нового сервера.
NS-записи и DNS-записи хранятся в одном месте — в панели управления доменом.
Так случилось с нашим клиентом — домен его сайта куплен через провайдера Majordomo, который кроме хостинга еще предоставляет услугу регистрации домена. У данного провайдера NS-записи и DNS хранятся и редактируются в одном месте. В этом случае так же не требуется правка NS-записей и перенос DNS в другое место, достаточно в записи типа А указать новый IP-адрес.
Панель управления доменом провайдера Majordomo
Источник
Домашний хостинг сайтов с динамическим IP
У меня (как и у многих web-разработчиков) имеется с десяток сайтов которые необходимо где-то размещать (хостить).
Сайты практически не приносят прибыли, поскольку это какие-то старые работы (по разным причинам не пошедшие в продакшн), домашняя страница, сайт заведенный красивой почты и тому подобное. Но в то же время эти сайты жалко бросать, а потому приходится каждый месяц на них тратить вполне реальные деньги чтобы покупать хостинг. Деньги, прямо скажем небольшие, но тем не менее их жалко, поскольку отдачи от сайтов никакой нет.
В то-же время в наличии имеется:
- Домашний сервер на Ubuntu
- Быстрый ethernet-интернет от МТС
Но не имеется ключевого — статического IP. Если бы он был, то все было-бы намного проще и данную статью я бы точно не писал. А выдавать статический IP мой МТС абсолютно не желает (если только я не подключусь как бизнес-клиент).
Разумеется есть всем известные Dynamic DNS сервисы вроде noip.com, но они успешно решают лишь задачу удаленного доступа к нашему серверу (по SSH или FTP), но для хостинга совершенно нам не подходят, поскольку в настройках домена на DNS-сервере нам нужно обязательно прописать A-запись с реальным IP-адресом (а не ссылку на наш виртуальный домен).
Что делать?
Я не буду останавливаться на том, как настроить linux сервер (и тем более как его выбрать), поскольку предполагаю, что он у вас уже есть. Также я не буду подробно расписывать настройки nginx и Apache, поскольку опять-таки предполагаю, что вы с этим справитесь самостоятельно.
Первое с чем у меня возникли проблемы — это как перенаправить посетителей с моих доменов (у меня есть 2 домена) на мой домашний сервер. То есть чтобы клиент который набрал domain.com попал ровно на мой домашний сервер с учетом того, что на нем каждый день меняется IP-адрес.
Для решения нам нужно настроить DNS-сервер, а именно следующие записи: SOA, NS, MX, A, CNAME. Важно чтобы мы имели возможность настройкой TTL (time to live), поскольку время жизни наших записей должно быть очень небольшим, буквально 60-120 секунд. В противном случае при смене IP-адреса сервера пользователи долго не смогут попасть на наш сервер (из-за кеширования).
Итак, нам нужен DNS сервер, варианты решения:
- Используем сервисы которые предоставляют нам DNS-хостинг
- Используем собственный DNS-сервер в связке с DDNS-доменом
Рассмотрим оба варианта.
Используем сервисы которые предоставляют нам DNS-хостинг
Для этого есть ряд бесплатных сервисов, из которых самым популярным является freedns.afraid.org. На таких сервисах можно добавить свой домен(ы) и получить возможность через API обновлять у них A-запись при помощи небольшого скрипта.
Выглядит вполне неплохо, но подвох в том, что эти сервисы оставляют за собой право довешивать к вашему домену поддомены третьего уровня. То есть вы зарегистрировали у них user.ru, а они спокойно довешают свои сайты вида hello.user.ru, shop.user.ru и так далее. Разумеется от этого можно отказаться, но… за деньги. Платить деньги за такие сервисы смысла я не вижу, поскольку за сравнимые деньги вы можете купить полноценный хостинг на каком-нибудь провайдере без всяких плясок вокруг DNS настроек.
Остальные сервисы рассматривать не будем, а сосредоточимся на втором варианте.
Используем собственный DNS-сервер в связке с DDNS-доменом
Для этого варианта у нас, во-первых, должен быть DDNS-домен (который обновляется при смене IP), например, domain.ddns.net, а во-вторых, придется установить и настроить BIND на нашем сервере.
Всего необходимо сделать ровно 5 шагов. Везде под словами «domain» или «domain.ru» подразумевается ваше имя домена (короткое или полное).
1. Настроить 2 или 3 DDNS-поддомена
Почему 2 или 3? Потому, что ряд регистрантов не разрешит вам использовать домен только с одним NS-сервером. Самое обидно, что не все про это скажут — ваш домен просто не будет работать, но вы не будете понимать почему.
Тут все просто — идем на noip.com, там регистрируем аккаунт и добавляем 3 бесплатных поддомена (больше 3 не даст).
2. Настраиваем собственный DNS-сервер
Создаем зоны (по одной зоне на каждый наш домен):
и собственно файл с настройками зоны:
Примечание: обращаю внимание, что TTL устанавливаем равным 60 секунд. В файле /etc/bind/named.conf.local добавляем подключение нашей зоны:
Все, рестартуем BIND:
И глянем /var/log/syslog чтобы там не было сообщений об ошибках
3. Настроить наш домен(ы)
Идем в панель управления регистратора и там в настройках нашего домена в качестве NS-серверов указываем созданные DDNS-поддомены:
После этого возможно придется подождать несколько часов (или даже сутки) пока настройки среплицируются между всеми серверами.
4. Настроить периодическое обновление IP-адресов
Мой роутер поддерживает обновление IP-адреса на одном домене, но мне нужно это делать сразу для 3-х доменов. Плюс нам надо обновлять IP-адрес в конфиге BIND’а, поэтому напишем скрипт который будет делать:
- Определять наш внешний IP-адрес
- Проверять изменился ли IP адрес, если не изменился, то ничего делать не надо
- Обновлять IP-адрес у всех DDNS-поддоменов через API сервиса noip.com
- Прописывать новый IP адрес в конфиг BIND’а
- Перезапускать BIND
Сам скрипт пусть будет на шелле:
Скрипт нужно запускать под рутом (чтобы ему хватило прав обновлять конфиги BIND’а и рестартовать его). Добавляем в crontab рута его запуск каждую минуту:
Пару слов про определение текущего IP-адреса. В скрипте выше это делается через резолвинг DDNS-поддомена domain.ddns.net. То есть сначала наш роутер его туда прописывает, а потом мы читаем. Это не очень хороший вариант, поскольку мы завязываемся на роутер и можем потерять несколько минут пока на DDNS-поддомене обновится IP-адрес на актуальный. Все это время наш сервер будет недоступен.
Поэтому у себя я использовал улучшенный вариант, который заодно не лазит в интернет:
В данном варианте мы загружаем главную страницу роутера (через http), дальше регэкспом находим на ней текущий IP-адрес. Разумеется, этот вариант подходит далеко не всем, но на DD-WRT прошивках работает.
5. Настройка роутера
Про необходимость настроить обращение к DDNS-сервису я уже писал, но еще не забывайте про необходимость настроить форвардинг портов на вашем роутере:
- HTTP — TCP, 80-ый порт
- DNS — TCP+UDP, 53 порт
Вывод
Итак, что я получил в итоге:
- Мои сайты живут на домашнем сервере, за который я никому не плачу;
- Мои домены резолвятся через мой собственный DNS-сервер, время жизни записей 1 минута, то есть обновление происходит очень быстро;
- В качестве NS-записей указаны не реальные IP-адреса (которые у меня часто меняются), а DDNS-поддомены;
- Актуальность записей в DDNS-поддоменах и в конфиге моего DNS-сервера обеспечивается автоматически, без какого-либо вмешательства со моей стороны.
По моим замерам, когда МТС (мой провайдер) обновляет мне IP-адрес, то мои сайты начинают работать спустя где-то 2 минуты. Это вполне приемлемо для меня.
Источник