Свой сервер

Я арендовал сервер VPS для личных проектов. Сегодня это стоит копейки, месячная аренда сервера начинается где-то от 200 рублей. Стоимость одной поездки на такси.

На этот сервер загружаю всяческие эксперименты. Прототипы будущих продуктов, бэкэнды для ботов и так далее.

Своего рода песочница. Если какой-то из моих проектов вырастет в нечто большее и перестанет помещаться, я просто перенесу проект на отдельный сервер. Такого ещё не происходило, но я надеюсь что произойдёт 😉

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

У сервера VPS как и у любого сервера в интернете есть собственный IP-адрес. Например — 241.40.39.57

Каждое приложение может “публиковать” свой собственный порт. Зная этот порт, мы можем обратиться к приложению, указав IP и порт.

IP будет общий, так как всё находится на одном сервере, а порт будет различаться. У каждого приложения свой порт.

Например:

https://241.40.39.57:7000

https://241.40.39.57:5555

https://241.40.39.57:31005

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

Так себе решение.

Свой домен

У меня есть собственный домен, который я купил специально для блога — leonidchernenko.ru.

Так как я владелец домена, я могу через редактор DNS-записей добавить поддомены, и у каждого приложения будет “настоящий” адрес.

facebook-killer.leonidchernenko.ru

yii4.leonidchernenko.ru

developer-heaven.leonidchernenko.ru

NB: Для редактирования DNS-записей я использую сервис “Яндекс.Коннект”, но вы можете использовать любой, например от вашего хостера или регистратора домена. Также популярный выбор — CloudFlare.

Добавляем запись в DNS, указываем имя поддомена и IP сервера:

A facebook-killer 241.40.39.57 21600

И через некоторое время у нас появляется новый поддомен.

Добавляем на каждое приложение свой поддомен и радуемся удобным адресам.

Кеш DNS

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

Повлиять на скорость обновления DNS-серверов невозможно.

Это ужасно, сидишь и ждёшь пока всё обновится.

Wildcard

Поэтому я решил проблему так, сделал “Wildcard” запись A-типа в DNS для моего домена.

Имя поддомена заменяется звёздочкой: *

Звёздочка означает “любой поддомен”.

A * 241.40.39.57 21600

Теперь любой поддомен моего сайта, который явно не указан в DNS, будет по умолчанию ссылаться на мой сервер VPS. Удобно!

И это меня не ограничивает. Если я захочу, могу подключить новый поддомен на любой другой IP (другой сервер), добавив ещё одну A-запись в DNS.

Мне больше не нужно ждать целый день для того чтобы запустить приложение на поддомене, я могу делать это моментально.

Приложение сразу же будет доступно из любой точки мира.

Работа стала чуть проще 😌

Бонус

Забавный комикс про то как устроен DNS: https://howdns.works/