EvolCode
треки/Сервер и продакшн·06 / 08
5 мин чтения

Домены и DNS

У сервера есть IP-адрес типа 123.45.67.89. Запоминать невозможно. Поэтому есть DNS — глобальная система которая превращает имена в IP. Когда ты пишешь example.com — браузер сначала спрашивает DNS «куда идти?», потом идёт на полученный IP.

Что такое DNS и зоны

Доменное имя устроено иерархически. example.com → .com (TLD) → корень (.). При запросе example.com браузер спрашивает у DNS-серверов: 1) где живут «.com»? 2) где живёт example в .com? 3) какой IP у example.com? — три уровня. Управление записями домена идёт через DNS-зону у регистратора (Namecheap, GoDaddy, reg.ru, Cloudflare).

Главные типы записей

A — указывает домен на IPv4 (example.com → 123.45.67.89). AAAA — то же для IPv6. CNAME — алиас на другой домен (

$ www.example.com → example.com

). MX — почта (куда слать письма). TXT — произвольный текст (часто для верификации, SPF, DKIM). NS — какие DNS-серверы обслуживают зону. Главное для сайта: A-запись на твой IP плюс CNAME для www.

Как привязать домен к серверу

Купил домен на reg.ru → купил VPS на Hetzner с IP 123.45.67.89. Заходишь в панель управления доменом → DNS records → создаёшь две записи: A @ 123.45.67.89 (где @ означает корневой домен) и CNAME www example.com. Всё. Через 5-30 минут (иногда дольше — DNS кеши) example.com и www.example.com будут показывать твой сервер.

TTL и propagation

TTL (time to live) — сколько секунд DNS-резолверы кешируют запись. Маленький TTL (300с) — быстро применяются изменения, но больше нагрузка на DNS. Большой (86400с = сутки) — наоборот. Когда планируешь мигрировать — за день уменьши TTL до 60. Тогда переезд пройдёт за минуты вместо суток. Propagation (распространение) — процесс когда новые записи доходят до всех резолверов в мире.

Cloudflare как DNS + CDN

Многие переносят DNS в Cloudflare даже если домен куплен в другом месте. Бесплатно даёт: быстрый DNS, защиту от DDoS, CDN (быстрая отдача статики из ближайшей точки), HTTPS-сертификаты. Перенос: меняешь NS-серверы домена в регистраторе на Cloudflare-овские → импортируешь записи. Дальше всё через Cloudflare. Для серьёзного проекта — почти обязательно.

примерtext
# Допустим:
#   example.com — твой домен
#   123.45.67.89 — IP твоего VPS
#   89.10.20.30 — другой VPS (для api поддомена)


# === МИНИМАЛЬНЫЙ НАБОР ДЛЯ САЙТА ===

Type   Name      Value                  TTL    Назначение
─────  ────────  ─────────────────────  ─────  ─────────────────────
A      @         123.45.67.89          3600   корневой example.com
A      www       123.45.67.89          3600   www.example.com
                                              (или CNAME www → @ )

# @ означает «сам домен». Можно писать и просто example.com.


# === МНОГО ПОДДОМЕНОВ ===

A      @         123.45.67.89          3600
A      www       123.45.67.89          3600
A      api       89.10.20.30           3600   api.example.com на другом сервере
A      blog      123.45.67.89          3600
A      admin     123.45.67.89          3600


# === ПОЧТА на Google Workspace ===

MX     @         1  smtp.google.com    3600
TXT    @         "v=spf1 include:_spf.google.com ~all"
TXT    @         "google-site-verification=abc123..."
                                              # верификация в Google Search Console


# === HTTPS-сертификат через Let's Encrypt ===
# Никаких DNS-записей не нужно — Let's Encrypt подтверждает по HTTP


# === ПРОВЕРКА ИЗ ТЕРМИНАЛА ===
dig example.com                          # все A-записи
dig +short example.com                   # только IP
dig MX example.com                       # MX-записи
dig TXT example.com                      # TXT-записи
nslookup example.com                     # альтернатива

# Где сейчас разрешается домен?
dig @8.8.8.8 example.com                 # через Google DNS
dig @1.1.1.1 example.com                 # через Cloudflare DNS


# === DNS PROPAGATION ===
# Поменял A-запись. Когда увидят все?
# Зависит от прошлого TTL: записи кешировались на этот срок
# Глобально: 95% — за час, 100% — за 24 часа максимум

# Сайты для проверки:
# https://www.whatsmydns.net/  — карта мира с распространением
# https://dnschecker.org/

Типичные DNS-записи для сайта на VPS

главное
  • 01DNS превращает имя в IP — браузер не знает 123.45.67.89, он знает example.com
  • 02A-запись связывает домен с IPv4. Минимум для сайта: `A @ ваш-IP` и `CNAME www example.com`
  • 03CNAME — алиас, можно использовать для www → корня
  • 04Изменения DNS не моментальны — могут идти от 5 минут до 24 часов (зависит от TTL)
  • 05Перед миграцией снижай TTL до 60-300 — переезд пройдёт быстро
  • 06Cloudflare как бесплатный DNS+CDN+защита-от-DDoS — мастхев для серьёзного проекта
  • 07dig / nslookup — главные команды для диагностики из терминала
проверь себя
01Поменяли A-запись 30 минут назад, у вас обновилось, у клиента — нет. Почему?
02Хочешь сделать api.example.com на ОТДЕЛЬНОМ сервере. Какая запись?
03Зачем переносить DNS в Cloudflare?
следующий урок: HTTPS и Let’s Encrypt — бесплатный сертификат