У меня (и у многих веб-разработчиков) есть около дюжины сайтов, которые нужно где-то размещать.
Эти места представляют собой старые рабочие места (которые по разным причинам так и не были запущены в производство), домашние страницы, веб-сайты и т.д., поэтому реальной пользы от них нет. Но в то же время эти сайты жаль покидать. Поэтому каждый месяц вы должны тратить достаточно денег на покупку гостеприимства. Деньги ведут светскую беседу, если честно, но все равно они печальны. Потому что воздействие пространства не является таковым.
Одновременно с наличием:.
- Домашний сервер Ubuntu
- Интернет Fast Ethernet от МТС.
Конечно, существуют всем известные сервисы динамических DNS, такие как noip.com, которые успешно решают проблему удаленного доступа к серверу (через SSH или FTP), но для хостинга доменов они совершенно не подходят. Конфигурация DNS. -Server требует, чтобы записи были настроены на реальные IP-адреса (а не на соединения с виртуальными доменами).
Что делать?
У вас уже установлен сервер Linux (и еще меньше возможностей для выбора). И я не буду вдаваться в подробности формирования Nginx и Apache.
Первая проблема, с которой я столкнулся, заключалась в том, как перенаправить посетителей с домена (есть два домена) на моем домашнем сервере. Другими словами, клиенты, которые вводили Domain.com, находили именно мой домашний сервер, поскольку IP-адрес меняется ежедневно.
Для этого необходимо настроить DNS-серверы, то есть следующие записи: SOA, NS, MX, A, CNAME. Важно иметь возможность настроить TTL (время жизни), так как жизнь записи очень коротка и должна составлять буквально от 60 до 120 секунд. В противном случае, если IP-адрес сервера изменится, пользователи долгое время не смогут связаться с сервером (из-за временного хранения).
Поэтому требуется наличие DNS-сервера.
- Используйте услугу, предоставляющую хостинг DNS
- Используйте свой собственный DNS-сервер в сочетании с DDNS-Domain
Используйте услугу, предоставляющую хостинг DNS
Для этого существуют различные бесплатные сервисы, самый популярный из которых — Freedns.afraid.org. Здесь вы можете добавлять домены, получать API и обновлять их с помощью небольшого скрипта.
Выглядит это очень хорошо, но ловушка заключается в том, что эти службы оставляют за собой право добавить в поле подсектор третьего уровня. Другими словами, зарегистрируйте user.ru и спокойно вводите такие места, как hello.user.ru, shop.user.ru и т.д. Конечно, от этого можно отказаться, но … Это ради денег. Платить за такие услуги я не вижу смысла. Потому что за эквивалентные деньги вы можете купить полное гостеприимство у провайдера без всех этих танцев вокруг настроек DNS.
Я не буду рассматривать другие услуги, а остановлюсь на втором варианте.
Используйте свой собственный DNS-сервер в сочетании с DDNS-Domain
Для этого варианта вам сначала понадобится DDNS-сектор (который получает уведомление при изменении IP). Например, domain.ddns.net, который затем нужно установить и привязать к серверу.
В целом необходимо выполнить всего пять шагов. Везде слово ‘domain’ или ‘domain.ru’ означает доменное имя (краткое или полное).
1. настроить два или три подсектора DDNS
Почему 2 или 3? Потому что многие регистраторы не позволяют использовать домен на одном NS-сервере. Самое неприятное, что не все вам скажут — ваш домен просто не будет работать, но вы не поймете почему.
Это просто — зайдите на сайт noip.com, зарегистрируйте аккаунт и добавьте три бесплатных поддомена (будет предложено не более трех).
2. настройка собственных DNS-серверов
Создайте свои зоны (по одной зоне на домен):.
И, собственно, файл с конфигурацией зоны:.
Примечание: Обратите внимание, что TTL установлен на 60 секунд. Добавьте привязки зон в файл /etc/bind/named.conf.local.
Вот и все — перезапустите BIND.
Затем посмотрите / var / log / syslog и убедитесь, что сообщения об ошибках не появляются.
3) Настройте домен.
Зайдите в панель управления регистратора и вы увидите, что поддомен DDNS создан как NS-сервер в конфигурации домена.
Затем вам, возможно, придется подождать несколько часов (или день), пока конфигурация будет реплицирована на все серверы.
4. настроить регулярное обновление IP-адресов
Мой маршрутизатор поддерживает обновление IP-адресов в одном домене, но мне нужно обновлять сразу в трех доменах. Кроме того, мне нужно обновить IP-адрес в конфигурации BIND’a, поэтому я создаю следующий сценарий
- Найдите внешний IP-адрес.
- Проверьте, не изменился ли IP-адрес. Если он изменился, вам не нужно ничего делать.
- Обновление IP-адресов всех поддоменов DDNS через noip.comAPI
- Запишите новый IP-адрес в конфигурацию BIND
- Перезапуск BIND
Сценарий должен быть запущен от имени root (чтобы иметь разрешение на обновление и перезапуск конфигурации BIND). Добавьте его в корневой кронтаб и запускайте его каждую минуту.
Несколько слов об определении текущего IP-адреса. В приведенном выше сценарии это делается через поддомен DDNS domain.ddns.net. Это означает, что маршрутизатор сначала записывает на него, а затем считывает. Этот вариант не подходит, поскольку может потребоваться несколько минут, привязанных к маршрутизатору, пока поддомен DDNS обновляет свой IP-адрес до текущего адреса. В течение этого времени сервер будет недоступен.
Поэтому я использовал улучшенный вариант, который также не выходит в сеть.
Этот вариант загружает главную страницу маршрутизатора (через http), а затем находит текущий IP-адрес. Конечно, этот вариант подходит не всем, но он работает с прошивкой DD-WRT.
5. конфигурация маршрутизатора.
- HTTP-TCP, порт 80
- DNS-TCP + UDP, порт 53.
Итак, что я получил в результате:.
- Мой сайт находится на моем домашнем сервере, и я никому не плачу.
- Мой домен разрешается через мой DNS-сервер, и запись действительна в течение одной минуты, поэтому обновления происходят очень быстро.
- NS-записи — это не фактические IP-адреса (которые я часто меняю), а поддомены DDNS, поэтому
- Поддомен DDNS и записи конфигурации моего DNS-сервера обновляются автоматически без какого-либо вмешательства с моей стороны.
PS Если кому-то понравится этот пост, я могу написать вторую часть, объясняющую, как настроить использование хостинга YandexDNS. Это позволяет отказаться от собственных DNS-серверов, отказаться от поддоменов DDNS и немного повысить надежность (поскольку DNS-серверы не меняют IP). В настоящее время я использую именно эту систему.
