Как домен находит 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