Net BasicsЗнаков 4424Время чтения12 мин

Как домен находит VPS: Введение в DNS, HTTPS и обратные прокси

Руководство для новичков по связке домена, DNS (A/AAAA-записи), портов, обратного прокси, TLS-сертификатов и HTTPS для доставки веб-запросов к приложению на VPS.

Выполнение curl http://127.0.0.1:3000 на сервере доказывает, что веб-приложение работает локально. Однако, чтобы сайт открывался у посетителей по адресу https://example.com, необходимо объединить домен, записи DNS, сетевые порты, обратный прокси и сертификаты HTTPS в единую надежную цепочку.

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

1. Полный путь одного веб-запроса

Пользователь вводит домен в браузере
  ↓ DNS-запрос
Получение IP-адреса сервера
  ↓ TCP 443 + TLS-рукопожатие
Подключение к обратному прокси на VPS
  ↓ Перенаправление на 127.0.0.1:3000
Приложение возвращает ответ клиенту

Аналогии и распределение ответственности:

КомпонентАналогияРеальная обязанность
Доменное имяЗапоминающееся названиеЧеловекочитаемый адрес сайта
DNSТелефонный справочникПреобразование домена в IP-адрес и другие типы записей
IP-адресПочтовый адрес зданияОпределение узла или сетевого интерфейса в интернете
ПортНомер помещенияПередача соединения нужной сетевой службе
Обратный проксиСтойка администратораПрием внешних запросов и их маршрутизация к внутренним процессам
TLS-сертификатПроверенный паспортПодтверждение подлинности домена и шифрование трафика

DNS не хранит и не передает содержимое страниц, а TLS-сертификат не «направляет» домен на сервер. Каждый уровень настраивается и проверяется отдельно.

2. Основные типы записей DNS

ЗаписьНазначениеНа что обратить внимание
AСвязывает имя с IPv4-адресомТребует обновления при смене IPv4 сервера
AAAAСвязывает имя с IPv6-адресомНе добавляйте, если IPv6 на VPS не настроен
CNAMEСоздает псевдоним одного имени к другомуОбычно не применяется для корневого домена (Zone Apex)
TXTХранит текстовые данные (SPF, валидация)Не вставляйте неизвестные токены проверки

Изменения в DNS не распространяются мгновенно. Локальные и провайдерские DNS-резолверы кэшируют записи согласно значению TTL (Time to Live). При миграции уменьшайте TTL заранее.

3. Зачем нужен обратный прокси (Reverse Proxy)

На одном VPS часто работает несколько приложений:

blog.example.com  → 127.0.0.1:3000
api.example.com   → 127.0.0.1:4000

Обратный прокси (Nginx, Caddy) слушает публичные порты 80/443 и распределяет входящие запросы к нужным приложениям на основе заголовка Host (доменного имени). Он берет на себя терминацию TLS, сжатие трафика, ведение журналов и ограничение частоты запросов.

Это избавляет каждое приложение от необходимости управлять низкоуровневыми сетевыми портами и изолирует архитектуру:

  • Сначала проверяется работа приложения на localhost;
  • Затем проверяется маршрутизация прокси;
  • В конце проверяется DNS и внешний доступ по HTTPS.

4. Что защищает протокол HTTPS

HTTPS — это протокол HTTP, работающий поверх зашифрованного TLS-соединения. Он гарантирует:

1. Аутентификацию: браузер убеждается, что сертификат выдан именно для этого домена; 2. Конфиденциальность: передаваемые данные зашифрованы и защищены от перехвата; 3. Целостность: любая модификация данных при передаче мгновенно обнаруживается.

Центры сертификации (например, Let’s Encrypt) автоматически выпускают и продлевают сертификаты по протоколу ACME. Типы проверок (Challenge):

  • HTTP-01: проверка через размещение файла по протоколу HTTP (требует открытого порта 80);
  • DNS-01: проверка через создание TXT-записи в DNS (не требует открытых веб-портов);
  • TLS-ALPN-01: проверка через специальное TLS-соединение на порту 443.

Для стандартных веб-сайтов чаще всего используется HTTP-01.

5. Последовательность настройки веб-сервера

1. Запустите приложение на VPS, убедившись, что оно слушает только локальный адрес (127.0.0.1); 2. Проверьте локальный ответ приложения (curl -I http://127.0.0.1:3000); 3. Установите обратный прокси из официального репозитория; 4. Проверьте синтаксис конфигурации перед запуском службы; 5. Добавьте записи DNS и проверьте их резолвинг через публичные DNS; 6. Разрешите порты в фаерволе (для проверки HTTP-01 порт 80 обязателен); 7. Выпустите TLS-сертификат через надежный ACME-клиент; 8. Проверьте сайт из внешней сети по протоколу HTTPS; 9. Проверьте корректность настройки таймеров автоматического продления сертификата.

6. Поуровневая диагностика неполадок

Домен ведет на старый IP-адрес

Проверьте авторитативные записи DNS, значение TTL и локальный кэш. Не переустанавливайте веб-сервер, если трафик еще не доходит до нового VPS.

IPv4 работает, но на некоторых устройствах сайт не открывается

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

Ошибка 502 Bad Gateway

Обратный прокси активен, но не может связаться с бэкенд-приложением. Проверьте процесс приложения, адрес привязки, порт и локальный ответ.

Сбой выпуска ACME-сертификата

Изучите логи: для HTTP-01 проверьте доступность порта 80, для DNS-01 — права API и TXT-записи, а также синхронизацию системных часов по NTP.

Порт приложения доступен напрямую из интернета

Проверьте, не слушает ли приложение адрес 0.0.0.0, и закройте этот порт в фаерволе. Бэкенд должен быть доступен только локально.

7. Резюме

Домен, DNS, HTTPS и обратный прокси — звенья одной цепи: DNS находит IP, сеть доставляет пакеты на порт 443, TLS обеспечивает шифрование, а обратный прокси передает запрос приложению.

Часто задаваемые вопросы (FAQ)

Можно ли включить HTTPS без домена, только по IP?

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

Что меняется при включении проксирования через Cloudflare?

Трафик клиентов сначала идет на серверы CDN, а затем перенаправляется на ваш VPS. Появляется дополнительный уровень кэширования и защиты.

Нужно ли продлевать сертификаты вручную?

Современные бесплатные сертификаты выпускаются на 90 дней и продлеваются автоматически по расписанию через cron или systemd-таймеры.

Источники

Share

Поделиться статьёй