Перейти к основному содержимому

Подключение своего домена

В этой статье мы подробно расскажем как подключить к платформе Tuna собственный домен и опубликовать локальный сайт в интернет без публичного IP, сложных конфигураций сети вроде VPN и без публикации кода на какой либо сервер или хостинг.

Публикация на собственном домене может быть интересна для Демо стендов, когда вы презентуете какое-то решение заказчику. Клиент видит законченное решение при этом вы не потратили и минуты на подготовку окружения, а также можете править какое-то мелочи прямо на ходу. Впрочем кейсов применения может быть значительно больше.

Подключение домена​

Покупка домена​

Для начала вам понадобится собственный домен (если у вас его нет), вы можете купить его например у Рег.ру или namecheap или любого другого регистратора доменов. Для примеров в этой статье мы используем домен tuna-dev.ru.

Подключение к Tuna и получение настроек​

Перейдите на страницу управления доменами в личном кабинете и нажмите Добавить домен cправа вверху.

Выберите тип Свой домен и в поле Домен введите свой домен. В нашем случае это api.tuna-dev.ru. Если у вас Unicode домен например в одной из таких зон .РФ, .ДЕТИ, .ҚАЗ, то нужно указывать конвертированный punycode вариант.

После указания своего домена вы увидите нужные настройки для DNS.

Настройка DNS​

Перейдите в панель управления DNS-записями и создайте запись, которую показал кабинет. Для поддомена вроде api.tuna-dev.ru это CNAME: он указывает на инфраструктуру Tuna целиком, а не на конкретный сервер, поэтому домен работает с отказоустойчивостью. Корневой домен вроде tuna-dev.ru через CNAME не подключить, для него есть отдельный вариант. Если у вас указана AAAA запись для выбранного домена, то её нужно удалить, так как работа по IPv6 пока не поддерживается.

Ожидание подтверждения​

После создания DNS записи, можно вернуться в личный кабинет и нажать Добавить, домен перейдёт в режим проверки.

Валидация обычно занимает от 15 минут до 2 часов, но может растянуться и на пару дней, зависит от TTL на DNS запись. Процесс проверки ограничен 24 часами, и разбит на 2 основных этапа:

  • Проверка DNS - проверяем, что ваш домен настроен корректно
  • Проверка TLS - выпускаем Let's Encrypt сертификат для вашего домена

Если процесс добавления завершился ошибкой DNS, проверьте, что вы верно создали DNS запись и она указывает на нужный сервер. Если всё корректно, возможно ещё не обновился DNS кэш и нужно ждать, тогда просто возобновите проверку. Если процесс добавления завершился ошибкой TLS, проверьте нет ли явных ошибок в настройке DNS: AAAA записи, рекурсивно зацикленные указатели. Если самостоятельно разобраться не получается, обратитесь в поддержку.

Использование​

После успешной верификации домена, вы получите письмо с уведомлением.

Теперь его можно начать использовать, для этого к команде tuna http <ваш_порт> укажите флаг --domain или его короткий вариант -d или переменную окружения и ваш домен, например:

tuna http 8080 --domain=api.tuna-dev.ru
tuna http 8080 -d api.tuna-dev.ru
export TUNA_DOMAIN=api.tuna-dev.ru
tuna http 8080

Корневой домен​

Корневой домен — это сам домен без поддомена: example.com, а не www.example.com. По правилам DNS на него нельзя поставить CNAME, только A-записи на конкретные адреса. Такой домен работает, но без отказоустойчивости: если один из адресов сменится или станет недоступен, часть посетителей не откроет сайт.

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

Сайт на поддомене, с отказоустойчивостью​

Этот вариант мы рекомендуем. Туннель работает на поддомене: по умолчанию это www.example.com, но можно выбрать свой, например shop.example.com. Поддомен подключается через CNAME, корень — через A-записи. Когда оба домена пройдут проверку DNS, Tuna сама создаст шлюз с постоянным перенаправлением (код 308) с example.com на поддомен. Путь страницы сохраняется: example.com/catalog откроет www.example.com/catalog.

Форма добавления корневого домена: выбран вариант «Сайт на поддомене, с отказоустойчивостью»

После добавления кабинет покажет DNS-записи для обоих доменов и команду для запуска туннеля на поддомене:

Окно «Новые домены»: CNAME-запись для www.example.com и A-записи для example.com
tuna http 8080 --domain=www.example.com

Когда оба домена пройдут проверку, у корня в списке появится пометка о перенаправлении:

Список доменов: example.com перенаправляется на www.example.com

Пара доменов занимает два места в лимите своих доменов. Если свободно только одно, вариант с поддоменом недоступен, а рядом появится ссылка на расширение подписки.

Что стоит знать о перенаправлении:

  • Строка запроса при перенаправлении не сохраняется: example.com/catalog?utm_source=mail откроет www.example.com/catalog. Ссылки с UTM-метками давайте сразу на поддомен.
  • Шлюз перенаправления виден в разделе Шлюзы. Если его удалить, перенаправление выключится, а в карточке корневого домена появится кнопка, чтобы включить его снова.
  • Пока на корне работает шлюз, туннель на example.com не запустится: сервер ответит Domain already reserved by gateway.
  • Если удалить поддомен, шлюз корня останется и продолжит перенаправлять на удалённый адрес. Удалите его в разделе Шлюзы вручную.

Только корневой домен​

Корень подключается A-записями на каждый адрес ячейки, туннель запускается на example.com. Отказоустойчивости у такого домена нет, и кабинет об этом предупреждает.

Форма добавления корневого домена: выбран вариант «Только example.com» с пометкой «Без отказоустойчивости»

Как перевести уже подключённый домен​

Корневые домены, подключённые раньше, и поддомены на A-записях помечены в списке значком предупреждения.

Список доменов: у example.com рядом со статусом значок предупреждения

Для корневого домена в карточке есть пошаговый переезд:

  1. Добавьте поддомен для сайта. Кабинет покажет CNAME-запись, которую нужно создать у регистратора.
  2. Запустите туннель на поддомене вместо корня. Туннель на корне остановите: пока он работает, перенаправление не включится.
  3. Включите перенаправление на поддомен. Кнопка станет доступна, когда поддомен пройдёт проверку DNS. Перенаправление начинает работать примерно через минуту.
Карточка корневого домена: три шага переезда на поддомен

Старые ссылки продолжат работать: посетители с example.com попадут на те же страницы поддомена.

Если поддомен подключён A-записями, менять туннель и настройки не нужно. Замените A-записи одной CNAME-записью из карточки домена. Предупреждение пропадёт после ближайшей перепроверки DNS, она проходит раз в сутки.

Карточка поддомена на A-записях: предложение заменить их одной CNAME-записью