Как купить домен и использовать доменное имя для размещения сайта или своих сервисов через NGINX

Kate

Administrator
Команда форума
Этот небольшой гайд для тех, кто давно хотел сделать свой сайт на своем домене и разместить на своем сервере, но все никак.

С чем будем работать далее:

  • Узнаем, что такое доменное имя и как оно связано с DNS.
  • Зарегистрируем свой домен и узнаем, что это быстро, легко и может стоить 199 рублей за первый год.
  • Настроим ресурсные записи, чтобы привязать доменное имя сайта к вашему IP‑адресу. Дополнительно рассмотрим, как при помощи DDNS автоматизировать обновление адресов, если у вас нет выделенного IP.
  • Развернем виртуальную машину, на которой будет работать сайт. (аналогичные действия можно проделать и на каком‑нибудь специально выделенном для этого физическом железе или VPS).
  • Развернем http‑сервер NGINX.
  • Настроим конфигурацию для размещения сайта и проверим, что сайт‑лендинг открывается.
  • Узнаем, как прикрутить ssl сертификаты и https.
  • Если используются какие‑то другие сервисы, например, nodered, узнаем, как использовать купленный домен в своих сервисах в варианте, например, nodered.mydomainhere.ru и т.д вместо 77.88.111.222:1880 или mydomainhere.ru:1880 (т. е. поработаем с доменами третьего уровня).
Дисклеймерный блок:

В данном материале не будет рассмотрено, как сделать сам сайт, как он устроен или как корректно вести процесс его разработки.

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

В данном материале демонстрируется минимальный объем, необходимый для того, чтобы своими силами с минимумом используемых технологий можно было реализовать задуманное.

Да, можно использовать сторонние инструменты вроде Tilda.ws, Figma.com, uCoz.ru (ого, они еще работают) или им подобные, а можно и так. На вкус и цвет, как говорится.

Любое упоминание каких‑то сервисов не является их рекламой. Просто показана частная реализация: что вот здесь можно сделать вот так, и все заработает. Уловив суть происходящего, можно реализовать это и на альтернативных сервисах.

Тех, кому интересно, приглашаю далее.

Что такое доменное имя, зачем оно нужно и причем тут DNS?​

Доменное имя — это сетевой идентификатор веб‑сайта или веб‑сервиса. Оно действует как адрес, который люди могут использовать для доступа к сайту в Интернете. Доменное имя представляет собой комбинацию букв и/или цифр, разделенных точками (например, habr.com).

Проще говоря, считайте, что доменное имя — это имя контакта в записной книге телефона. Точно так же, как вы используете имя контакта, связанное с телефонным номером, чтобы позвонить кому‑то, вы используете доменное имя для доступа к веб‑сайту. Разница в том, что вместо вызова контакта вы вводите доменное имя в адресную строку веб‑браузера.

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

Система доменных имен (DNS — Domain Name System) — это протокол, который позволяет браузеру найти запрошенный пользователем сайт по его доменному имени.

Считайте, что DNS — это гигантская телефонная книга, в которой доменные имена сопоставлены с IP‑адресами. Точно так же, как вы используете телефонную книгу для поиска номера телефона человека по его имени, ваш браузер использует DNS для поиска IP‑адреса веб‑сайта по его доменному имени. Каждому имени сайта соответствует набор цифр формата 000.000.000.000, называемым IP‑адресом (если мы про классический IPv4).

Когда пользователь вводит в адресной строке браузера имя сайта, например habr.com, компьютер запрашивает IP‑адрес этого сайта на специальном DNS‑сервере и после получения корректного ответа ( 178.248.237.68 ) открывает сам сайт, что и показано на рисунке.

Обращаясь к сайту по имени habr.com мы на самом деле обращаемся к IP-адресу 178.248.237.68
Обращаясь к сайту по имени habr.com мы на самом деле обращаемся к IP-адресу 178.248.237.68 Для тех, кому интересно посмотреть, как это работает схематично и по шагам:

Шаг 1. Зарегистрируем свой домен, настроим ресурсные записи, получим сертификаты​

Путь самурая начинается с того, что необходимо арендовать себе в пользование доменное имя, которое он хочет использовать. Для этого можно воспользоваться любым из многочисленных регистраторов доменных имен. В данном примере будет рассматриваться регистратор reg.ru. Из чего будет состоять путь?

  1. Необходимо создать учетную запись: reg.ru/user/authorize?mode=register
  2. Подтвердить почту, номер телефона, включить двухфакторную аутентификацию.
  3. Заполнить контакты владельца аккаунта (нужны данные паспорта, процесс описывать не буду, все стандартно и с пояснениями на самом сайте).
Пример внешнего вида заполненного личного кабинета
Пример внешнего вида заполненного личного кабинета
  1. Задать для поиска необходимое доменное имя: reg.ru/buy/domains/. Например:
492ae6128920d53caa0db62ec3ae8be4.png

Важно: по ходу всей статьи будет использоваться пример доменного имени superpuperhabr, вместо него вам необходимо использовать свой домен, который вы арендуете.

  1. В доменной зоне.RU домен стоит 199₽ в год (или чуть больше 50 копеек в день). (Важно понимании, что продление уже будет дороже). Все платные опции можно со спокойной душой отключить. А чтобы «поиграться» в дальнейшем с настройками https (и ssl) можно получить бесплатные сертификаты на 6 месяцев. Выглядит это примерно следующим образом, остается только оплатить любым удобным способом.
db14fbbeeeb44a333d8f4be284f9165f.png

  1. Далее, зададим настройку, которая связывает доменное имя и ваш IP‑адрес (условно, создаем запись в большой телефонной книге DNS, что за вашим именем такой‑то номер телефона). Для этого необходимо провалиться в раздел меню «Домены» и перейти в раздел настроек «DNS‑серверы и управление зоной»:
3b1195dec8ccd48963e7c38b96d51a92.png

  1. В данном разделе необходимо «Добавить запись», а из предложенного списка выбрать «A‑запись», которая очень просто заполняется следующим образом:
26d485cfb7b5560b3e47c87c7fc45e59.png

Свой публичный адрес, который необходимо указать в поле «IP Address» можно найти на 2ip.ru, например:

7e97c99f18808c70b93f836dd836f125.png

Соответственно итоговый результат будет выглядеть следующим образом:

Поздравляю! Теперь вы владелец домена, который будет работать также, как и habr.com!
Поздравляю! Теперь вы владелец домена, который будет работать также, как и habr.com!
Данная запись означает, что основной домен «superpuperhabr.ru» и его поддомены, например: «stage.superpuperhabr.ru» или «home‑camera.superpuperhabr.ru» или любой другой домен третьего уровня, будут перенаправлены на указанный вами IP‑адрес.

Тут есть нюанс: так как все мы делаем своими силами и пользуемся IP‑адресом, который выдает нашему роутеру интернет‑провайдер, надо учитывать, что он может измениться. Для наличия у себя постоянного «белого» публичного IP‑адреса, который будет закреплен только за вами, у провайдера необходимо подключить дополнительную услугу, названия которой варьируются следующим образом: «Белый IP‑адрес», «Реальный IP‑адрес», «Постоянный IP-адрес» и другие производные.

Если желания платить за такую услугу нет, надо понимать риски: в случае изменения у вас внешнего публичного IP‑адреса, его необходимо будет изменить вручную в настройках выше. Все то время, что будет указан старый адрес + 15 минут на применение внесенных изменений, сайт и другие сервисы, использующие доменное имя будут недоступны.

Как полумеру здесь можно использовать DDNS, чтобы IP‑адрес в случае изменения автоматически подтягивался к доменному имени, но про это в самом конце статьи.

Сертификаты​

После всех настроек спустя какое-то время вам на почту придут сертификаты. Из всего того объема информации, что будет в письме, необходимо создать два файла.

Итоговый сертификат и приватный ключ.

Для создания итогового сертификата необходимо объединить три сертификата «по меньше» (сам SSL‑сертификат, корневой и промежуточный сертификаты) в один файл. Для этого создайте на ПК новый текстовый документ с именем superpuperhabr.crt (superpuperhabr — доменное имя вашего сайта). Создать его можно при помощи блокнота или любого другого текстового редактора. Поочередно скопируйте и вставьте в созданный документ каждый сертификат. После вставки всех сертификатов файл должен иметь вид:

-----BEGIN CERTIFICATE-----
#Ваш сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Корневой сертификат#
-----END CERTIFICATE-----
Обратите внимание: один сертификат идёт следом за другим, без пустых строк.

Далее, создайте файл приватного ключа superpuperhabr.key и скопируйте в него содержание приватного ключа сертификата из письма.

-----BEGIN RSA PRIVATE KEY-----
#Ваш приватный ключ#
-----END RSA PRIVATE KEY-----
Еще момент: браузер может ругаться на именно эти бесплатные сертификаты, если использовать что‑то отличное от www.superpuperhabr.ru. Потому что сертификаты не поддерживают домены третьего уровня. Если занести денюжку, одним сертификатом можно покрыть все, в рамках домена и поддоменов (и superpuperhabr.ru и, например, Influx.superpuperhabr.ru).

Шаг 2. Переходим к развертыванию ОС Debian (и созданию виртуальной машины)​

Создание ВМ, установка и первичная настройка будут под спойлером, чтобы много картинок не захламляли основной текст.

Шаг 3. Развернем HTTP‑сервер NGINX и настроим его​

На установленную систему поставим пакет HTTP-сервера NGINX следующим набором команд:

apt update && \
apt install -y wget curl gpg && \
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null && \
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg && \
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian bullseye nginx" | tee /etc/apt/sources.list.d/nginx.list && \
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" | tee /etc/apt/preferences.d/99nginx && \
wget http://ftp.ru.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \
dpkg -i libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \
rm libssl1.1_1.1.1n-0+deb11u3_amd64.deb && \
apt update && \
apt install -y nginx && \
sed -i 32i\ 'include /etc/nginx/sites-enabled/*;' /etc/nginx/nginx.conf && \
systemctl restart nginx
В терминал можно вставлять сразу весь блок, так как команды объединены связкой " && \", которая выполняет команду одну за другой, если предыдущая выполнена успешно.

Данная команда устанавливает пару утилит, для добавления репозитория NGINX, актуальный репозиторий NGINX, устанавливает соответствующий пакет и делает небольшое изменение в конфиге, перезапуская службу для применения настроек.

Далее, создадим директорию для сайта в соответствии с доменным именем, куда будут скопированы файлы сайта (вам необходимо будет изменить только доменный адрес, остальные папки системные, но их надо создать):

mkdir -m 777 -p /var/www/superpuperhabr.ru /etc/nginx/sites-available /etc/nginx/sites-enabled
Далее, создадим конфигурацию для сайта:

nano /etc/nginx/sites-available/superpuperhabr.ru
И вставим следующее содержимое:

# Первый блок настроек.
# Переадресация (редирект) с superpuperhabr.ru на www.superpuperhabr.ru
# Важный момент, в зависимости от указания http или https будет использоваться или второй блок настроек или третий.
server {
listen 80;
server_name superpuperhabr.ru;
return 301 https://www.superpuperhabr.ru$request_uri;
}

# Второй блок настроек.
# Настройка работы с сайтом на адресе www.superpuperhabr.ru для http. Указываем путь к файлам сайта.
server {
listen 80;
server_name www.superpuperhabr.ru;
root /var/www/superpuperhabr.ru;

index index.html;

location / {
try_files $uri $uri/ /index.html;
}
}

# Третий блок настроек.
# Настройка работы с сайтом на адресе www.superpuperhabr.ru для https. Указываем путь к сертификатам. Указываем путь к файлам сайта.
# Важный момент, если не планируете использовать https или по указанному ниже пути не будет сертификатов - сервис не запустится.
server {
listen 443 ssl;
server_name www.superpuperhabr.ru;
root /var/www/superpuperhabr.ru;

# Указываем путь, где будут лежать сертификаты для шифрования
ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

index index.html;

location / {
try_files $uri $uri/ /index.html;
}
}
(Не забываем поменять доменное имя superpuperhabr на свое)

Записываем файл ctrl+o, enter и выходим из редактора ctrl+x.

Данная команда создаст файл /etc/nginx/sites-available/superpuperhabr.ru с конфигурацией в которой:

Первый блок server при обращении к сайту по адресу superpuperhabr.ru будет переадресовывать (редиректить) его на адрес www.superpuperhabr.ru. с использованием https. Если оставить все так, как в примере, то после переадресации будет идти обращение к третьему блоку настроек. Если изменить на http, то ко второму. Разница в том, что используются разные порты (80 и 443) и есть указание на путь к сертификату для шифрования передачи данных.

Предлагается оставить все как есть и продолжить, вернувшись чуть позже к размещению сертификата в указанной папке /etc/nginx/sites‑available/.

А пока, после создания конфига командой выше, необходимо разместить файлы сайта по пути: /var/www/superpuperhabr.ru

Я подготовил сайт‑заглушку через один из конструкторов сайтов. Данный сайт по сути является шаблоном для лендинга условной кофейни с отображением меню. Загрузить файлы на развернутый сервер можно двумя способами.

  1. Либо при помощи загрузки архива сайта в расширении tar.gz через ссылку.
  2. Либо перемещение файлов при помощи SFTP и консольной программки Termius, которая его поддерживает.
Для первого варианта: скачаем архив с файлом и распакуем в необходимую нам директорию:

wget -O /var/www/superpuperhabr.ru/landing.tar.gz -c https://clck.ru/33W2KU && \
tar -zxvf /var/www/superpuperhabr.ru/landing.tar.gz -C /var/www/superpuperhabr.ru/ && \
rm /var/www/superpuperhabr.ru/landing.tar.gz
Первая строчка. Скачиваем архив с сайтом через утилитку wget. Флаг -O задает название файла и путь к нему, а -c загружает файл по ссылке (я использовал сократитель ссылок от Яндекса, так как архив я залил документом в VK, а там ну очень большой путь и название файла). Тут главное, чтобы вы по своей ссылке могли просто сразу скачать файл, и можно указать свою ссылку вместо моей.

Вторая строчка занимается разархивацией, третья удалением исходного архива.

Для второго варианта: можно скопировать файлы по SFTP, используя Termius, просто перетащив файлы со своего компьютера на сервер в соответствующую папку:

Простым перетаскиванием копируем файлы сайта с локальной машины на настраиваемый сервер
Простым перетаскиванием копируем файлы сайта с локальной машины на настраиваемый сервер
Созданные ранее сертификат (superpuperhabr.crt) и приватный ключ (superpuperhabr.pem) необходимо переместить по пути, указанному в конфиге: /etc/nginx/sites-available/(Либо в любое другом место на сервере, тогда не забудьте изменить путь в конфиге выше)

[IMG alt="Простым перетаскиванием копируем файлы сертификатов с локальной машины на настраиваемый сервер.
Теперь конфигурация точно запустится, потому что все файлы на месте :)"]https://habrastorage.org/r/w1560/ge...3f1f788ff294e1f79ea3ff29961b.png[/IMG]Простым перетаскиванием копируем файлы сертификатов с локальной машины на настраиваемый сервер. Теперь конфигурация точно запустится, потому что все файлы на месте :)
Теперь говорим NGINX, чтобы он подтянул созданную нами конфигурацию и применим ее:

ln -s /etc/nginx/sites-available/superpuperhabr.ru /etc/nginx/sites-enabled && \
nginx -t && \
service nginx reload && \
systemctl restart nginx

Настройка портов​

Перед проверкой, что все работает, необходимо открыть 80 и 443 порт на вашем сетевом оборудовании. Для этого необходимо зайти на роутер (в моем случае адрес 192.168.50.1), авторизоваться и перейти в раздел меню настроек WAN. Там выбрать раздел Virtual Server / Port Forwarding и настроить значения следующим образом через «Add profile». Необходимо ввести имя сервиса, порт, который открываем, тип протокола и адрес нашего сервера. (На вашем оборудовании может быть что-то одно из названий)

Port Forwarding (или Virtual Server) — настройка для WAN‑интерфейса (который отвечает за подключение к интернету), позволяющая извне (через интернет) обращаться к конкретным клиентам локальной сети (например, к нашему серверу) по определенному порту приложения.

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

Выглядит это примерно следующим образом для роутеров ASUS:

95d8dd3a057bd0778907ab2e77e1fe4e.png

После перезагрузки сервиса последним блоком команд, все внесенные изменения вступают в силу и теперь можно открыть свой сайт по адресу superpuperhabr.ru (будет отображаться та самая "заглушка", про которую я писал выше, с файлами которой мы работали):

5aa4b49dbab436d0fb02e138902d08f7.png

Поздравляю! Вы на своем собственном железе, запустили свой собственный сайт под своим доменом :)

Да, там еще NGINX можно дополнительно конфигурировать для условно "боевой" работы, и в Docker`e все можно запустить, но в минимуме дается так. Дальше каждый может посмотреть, где и что ему подкрутить под свои нужды.

Шаг 4. Настройка проксирования через NGINX для других своих сервисов с добавлением https​

Изначально я начал разбираться как работать с доменным именем, потому что надоело пользоваться адресами в формате:

http://77.88.111.222:1880 –> Node-RED
http://77.88.111.222:1883 –> Mosquitto MQTT
http://77.88.111.222:1871 –> WireGuard VPN
http://77.88.111.222:3000 –> Grafana
http://77.88.111.222:8086 –> InfluxDBv2
http://77.88.111.222:8080 –> Chirpstack-v4
http://77.88.111.222:8090 –> Chirpstack-api
Хотелось использовать доменное имя, вместо IP-адреса, а также посмотреть, как прикрутить https и ssl, не внося изменения в настройки всего софта выше (как оказалось, делается это через проксирование в NGINX). В результате я пришел к такому формату:

https://nodered.superpuperhabr.ru –> Node-RED
https://mqtt.superpuperhabr.ru –> Mosquitto MQTT
https://wg.superpuperhabr.ru –> WireGuard VPN
https://grafana.superpuperhabr.ru –> Grafana
https://influx.superpuperhabr.ru –> InfluxDBv2
https://chirpstack.superpuperhabr.ru –> Chirpstack-v4
https://chirpstack-api.superpuperhabr.ru –> Chirpstack-api
Что же для этого нужно?

  1. Не забыть открыть все соответствующие порты, по аналогии с 80 и 443, как было описано выше.
  2. Добавить в NGINX конфигурацию для проксирования обращения с соответствующего имени на внутренний сервис (который localhost).
Для этого создаем конфигурацию командой:

nano /etc/nginx/sites-available/proxy
И вставляем туда следующее содержимое:

# Grafana primary listener and redirect
# Ждет обращения к адресу grafana.superpuperhabr.ru по порту 80, с переадресацией на https.
server {
listen 80;
server_name grafana.superpuperhabr.ru;
return 301 https://$host$request_uri;
}

# Grafana ssl config
# Редиректимся сюда, указываем сертификаты и адрес сервиса к которому обращаемся: http://127.0.0.1:3000
server {
listen 443 ssl http2;
server_name grafana.superpuperhabr.ru;

ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


####################################################################


# Influxdb primary listener and redirect
server {
listen 80;
server_name influxdb.superpuperhabr.ru;
return 301 https://$host$request_uri;
}

# Influxdb ssl config
server {
listen 443 ssl http2;
server_name influxdb.superpuperhabr.ru;

ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

location / {
proxy_pass http://127.0.0.1:8086;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


####################################################################


# Nodered primary listener and redirect
server {
listen 80;
server_name nodered.superpuperhabr.ru;
return 301 https://$host$request_uri;
}

# Nodered ssl config
server {
listen 443 ssl http2;
server_name nodered.superpuperhabr.ru;

ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

location / {
proxy_pass http://127.0.0.1:1880;
proxy_set_header Host $host;
proxy_set_header Connection "upgrade";
proxy_set_header Upgrade $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


####################################################################


# Chirpstack primary listener and redirect
server {
listen 80;
server_name chirpstack.superpuperhabr.ru;
return 301 https://$host$request_uri;
}

# Chirpstack ssl config
server {
listen 443 ssl http2;
server_name chirpstack.superpuperhabr.ru;

ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}


####################################################################


# Chirpstack-api primary listener and redirect
server {
listen 80;
server_name chirpstack-api.superpuperhabr.ru;
return 301 https://$host$request_uri;
}

# Chirpstack-api ssl config
server {
listen 443 ssl http2;
server_name chirpstack-api.superpuperhabr.ru;

ssl_certificate /etc/nginx/sites-available/superpuperhabr.crt;
ssl_certificate_key /etc/nginx/sites-available/superpuperhabr.pem;

location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Записываем файл ctrl+o, enter и выходим из редактора ctrl+x.

Данная конфигурация приведена для определенного набора сервисов. Соответственно, в зависимости от вашего набора, содержимое и состав конфига может отличаться.

Остается только применить конфигурацию, по аналогии с сайтом.

ln -s /etc/nginx/sites-available/proxy /etc/nginx/sites-enabled/proxy
nginx -t && \
service nginx reload && \
systemctl restart nginx
Теперь, при попытке открытия ссылки, например, "grafana.superpuperhabr.ru", ваш браузер обратится к reg.ru для получения IP-адреса сервера, который закреплен за доменом superpuperhabr.ru, а наш NGINX, получив данный запрос, перенаправит его на внутренний адрес сервиса Grafana http://127.0.0.1:3000 . При этом используя https и сертификаты, путь к которым указывается в конфиге выше. В виду чего нет необходимости настраивать https на каждом из сервисов.

Шаг 5 (опционально). Настраиваем DDNS, чтобы не менять доменные записи на reg.ru при каждом изменении IP-адреса.​

Чтобы не мониторить и не обновлять IP-адрес ручками каждый раз, как сменится IP (и если вы не подключили соответствующую дополнительную услугу у вашего провайдера), можно воспользоваться сервисом DDNS, который будет делать это за вас (почти).

Функция "Динамический DNS" (Dynamic DNS / DDNS) позволяет присвоить постоянное доменное имя (адрес для доступа из интернета) публичному IP-адресу, который роутер получает от интернет-провайдера. Публичный IP-адрес может поменяться, а доменное имя, которые вы зарегистрируете – нет. (есть сервисы, позволяющие сделать это бесплатно и вне ПО роутера, рассматриваемого в данном материале).

Чтобы настроить DDNS внутренними силами того же роутера, необходимо перейти в соседний от Virtual Server / Port Forwarding пункт меню, включить службу DDNS, установить метод запроса IP -> External. Указать свободное доменное имя и зарегистрировать его (в качестве примера используется: yours-nginx-server.asuscomm.com). Когда процесс успешно завершится, применить всю конфигурацию. Через небольшой промежуток времени ваш публичный IP адрес привяжется к доменному имени, которое вы зарегистрировали и доступ к приложениям можно будет запрашивать по нему, вместо публичного IP адреса.

(ваш роутер может и не поддерживать данного функционала, поэтому посмотреть, как это сделать при помощи других сервисов, можно самостоятельно)

Остается последний шаг, сказать reg.ru, чтобы он брал адрес для вашего домена с вашего DDNS. Делается это при помощи создания CNAME записи и выглядит следующим образом:

[IMG alt="Вы хотите, чтобы адрес grafana.superpuperhabr.ru указывал на тот же хост, что и адрес yours-nginx-server.asuscomm.com.
Для этого необходимо в поле ’Subdomain’ указать «grafana», а в поле ’Canonical name’ указать «yours-nginx-server.asuscomm.com»."]https://habrastorage.org/r/w1560/ge.../b8598b1c7ac108ac4ddbf80b0d33a9ed.png[/IMG]Вы хотите, чтобы адрес grafana.superpuperhabr.ru указывал на тот же хост, что и адрес yours-nginx-server.asuscomm.com. Для этого необходимо в поле ’Subdomain’ указать «grafana», а в поле ’Canonical name’ указать «yours-nginx-server.asuscomm.com».
Теперь reg.ru будет обращаться к доменному имени, за которое ответственна DDNS служба, которая имеет актуальный IP-адрес, потому и reg.ru все свои запросы будет отправлять именно на него.

Кстати, что за CNAME и что там еще есть, можно посмотреть в недавней статье от Selectel: -> тык <-

На этом все :) А самурай может дальше продолжать свой путь.


 
Сверху