Як працюють домени та DNS: посібник для не-розробників
Домен — це назва, яку люди вводять, щоб відкрити ваш сайт, наприклад example.com, а DNS (Domain Name System) — це довідник інтернету, який перетворює цю назву на місце, де насправді розміщений ваш сайт. Домен ви орендуєте у реєстратора, а потім додаєте записи DNS, які кажуть «веб-сайт там» і «пошта сюди». Підключення власного домену до застосунку — це здебільшого додавання правильного запису в правильному місці й очікування, поки він запрацює.
Чому це важливо, коли ви створюєте з ШІ
Конструктор застосунків на основі ШІ може написати і розмістити ваш застосунок, але домен існує поза ним — часто в іншої компанії, в панелі керування, повній незнайомих типів записів. Саме тут багато запусків зупиняються: застосунок готовий, але домен показує помилку, або пошта раптом перестає працювати після зміни DNS.
Трохи розуміння дуже допомагає. Ви знатимете, який запис просить ваш хостинг, чому він ще не запрацював і як не зламати те, що вже залежить від вашого домену (наприклад, пошту).
Буденна аналогія
Уявіть список контактів у телефоні.
Ви не пам'ятаєте номер друга; ви натискаєте на його ім'я, і телефон знаходить номер. DNS робить те саме для інтернету: ви вводите example.com, а DNS шукає «номер» (IP-адресу) сервера, до якого потрібно підключитися.
- Домен — це ім'я контакту.
- Реєстратор — компанія, яка офіційно фіксує, що ця назва належить вам.
- Записи DNS — це дані, збережені під іменем: номер телефону, адреса електронної пошти, домашня адреса.
- Сервери імен — це офіційна книга контактів для цього імені.
- Кешування — це коли телефон пам'ятає номер певний час. Якщо ваш друг змінив номер, деякі телефони ще довго дзвонитимуть на старий, поки їхня збережена копія не оновиться; це і є «поширення» DNS.
Частини доменного імені
Візьмемо app.example.com:
| Частина | Назва | Примітки |
|---|---|---|
.com | Домен верхнього рівня (TLD) | Керується реєстром. Є також .org, .io, .ai, коди країн на кшталт .ua |
example | Домен другого рівня | Частина, яку ви реєструєте |
example.com | Кореневий, або «apex», домен | Те, чим ви володієте |
app | Піддомен | Ви вільно створюєте їх у DNS — www, app, shop |
Домен ви не купуєте назавжди; ви реєструєте його на певний термін (зазвичай рік або більше) і продовжуєте. Якщо дати йому прострочитися, його може зареєструвати хтось інший.
Як працює пошук DNS
Коли хтось вводить app.example.com:
- Браузер запитує DNS-резолвер — зазвичай його веде інтернет-провайдер або публічна служба — щоб отримати адресу.
- Якщо резолвер має свіжу кешовану відповідь, він одразу відповідає.
- Якщо ні, він рухається по ієрархії: кореневі сервери вказують на сервери
.com, які вказують на сервери імен вашого домену. - Ваші сервери імен повертають запис, який ви налаштували, наприклад CNAME на ваш хостинг або запис A з IP-адресою.
- Резолвер кешує відповідь на TTL (час життя) запису і передає її браузеру, який підключається до сервера.
Усе це зазвичай відбувається за мілісекунди.
Типи записів DNS, які ви справді використовуватимете
| Запис | Що робить | Приклад |
|---|---|---|
| A | Вказує назву на IPv4-адресу | example.com → 203.0.113.10 |
| AAAA | Вказує назву на IPv6-адресу | example.com → 2001:db8::10 |
| CNAME | Робить назву псевдонімом іншої назви хоста | app.example.com → myapp.host.com |
| MX | Вказує, які сервери приймають пошту для домену, з числом пріоритету | example.com → 10 mail.provider.com |
| TXT | Містить текст, використовується для підтвердження і безпеки пошти | v=spf1 include:_spf.provider.com ~all |
| NS | Перелічує авторитетні сервери імен домену | ns1.dnsprovider.com |
| CAA | Обмежує, які центри сертифікації можуть видавати HTTPS-сертифікати | 0 issue "letsencrypt.org" |
Кілька правил, які варто знати:
- CNAME не може існувати з іншими записами під тією самою назвою. Тому стандартний CNAME не можна ставити на кореневий домен, де завжди є NS та інші записи. Багато провайдерів DNS пропонують обхідні рішення під назвами ALIAS, ANAME або CNAME flattening.
- Записи TXT виконують багато роботи для пошти. SPF визначає, хто може надсилати пошту з вашого домену; DKIM публікує ключ для перевірки підписів; DMARC повідомляє отримувачам, що робити з листами, які не пройшли ці перевірки.
- Менше число MX — вищий пріоритет. Пошта спершу пробує найменший номер.
Поширення та TTL
Слово «поширення» звучить так, ніби зміни повільно розходяться інтернетом. Насправді працює кешування: резолвери зберігають копію кожної відповіді на час її TTL і запитують знову лише після його закінчення. Тому:
- Новий запис, який ще ніхто не запитував, часто працює протягом кількох хвилин.
- Зміна наявного запису займає до часу його старого TTL, щоб стати видимою всюди.
- Зміна серверів імен може тривати день-два, бо ці записи довше кешуються на рівні TLD.
Корисний прийом: перед плановою зміною зменште TTL запису (наприклад, до кількох хвилин), дочекайтеся, поки мине старий TTL, і лише потім вносьте зміну.
Приклад: підключення застосунку бронювань до вашого домену
У вас є домен yoursalon.com. Ваш поточний сайт і пошта Google Workspace вже використовують його. Ви створили застосунок для бронювань і хочете розмістити його на book.yoursalon.com.
- Знайдіть, де керується ваш DNS. Це може бути ваш реєстратор або окремий провайдер DNS. Записи NS покажуть, де саме.
- Додайте CNAME для
book, що вказує на ціль, яку дає ваш хостинг застосунку. - Додайте будь-який запис TXT, який просить хостинг для підтвердження власності, якщо він його використовує.
- Не чіпайте записи MX і TXT для пошти. Пошта працюватиме, бо ви її не торкалися.
- Перевірте в хостингу, коли DNS оновиться. Після цього хостинг видасть HTTPS-сертифікат для
book.yoursalon.com. - Протестуйте на телефоні через мобільний інтернет, який використовує інший резолвер і кеш, ніж ваш домашній Wi-Fi.
Якби ви хотіли розмістити застосунок на кореневому yoursalon.com, знадобилися б записи A або функція ALIAS/flattening вашого провайдера DNS — і тоді ви замінили б там поточний сайт. Більше кроків див. у як підключити власний домен.
Типові помилки та хибні уявлення
- «Домен і хостинг — це одне й те саме». Домен — це назва, а хостинг — це місце, де працює застосунок. DNS їх з'єднує.
- Використання запису A, коли хостинг просив CNAME (або навпаки). Точно дотримуйтеся інструкцій хостингу.
- Друкарські помилки в цілі. Один неправильний символ у цілі CNAME — і підтвердження не проходить.
- Зміна серверів імен без копіювання записів. Перенесення DNS до нового провайдера без повторного створення записів MX і TXT — класичний спосіб зламати пошту.
- Проксування там, де його не має бути. Деякі провайдери DNS, як Cloudflare, можуть проксувати трафік. Деяким хостингам потрібно, щоб запис був у режимі «лише DNS», щоб видавати сертифікати.
- Видалення «невідомих» записів TXT. Часто це записи підтвердження або безпеки пошти, від яких щось залежить.
- Допустити закінчення терміну домену. Увімкніть автоматичне продовження і стежте, щоб платіжна картка була чинною.
Про що просити ваш конструктор ШІ
DNS існує поза вашим кодом, тож тут більше про те, про що питати:
- «Який саме запис DNS потрібен для app.mydomain.com — тип, назва і значення?»
- «Чи вплине ця зміна на мою пошту?»
- «Після додавання запису мій домен показує помилку. Що мені перевірити?»
- «Додай правильний канонічний URL і перенаправлення, щоб www і без www не показували сайт обидва.»
- «Налаштуй надсилання пошти з мого домену — які записи SPF, DKIM і DMARC мені знадобляться?» Див. як надсилати електронні листи з вашого застосунку.
Власні домени в Mythex
Кожен опублікований застосунок Mythex отримує адресу yourname.mythex.app. На Pro ви можете використовувати власний домен: купити його всередині Mythex (реєстрація оплачується окремо, а DNS для куплених доменів керується за вас) або підключити вже наявний, додавши CNAME з піддомену, наприклад app.example.com, на адресу yourname.mythex.app вашого застосунку, а потім натиснувши Verify. HTTPS видається автоматично. Якщо ваш DNS на Cloudflare, встановіть для цього запису режим «DNS only». Рекомендуються піддомени; для кореневих доменів усе залежить від підтримки ALIAS або flattening у вашого провайдера DNS. Документація щодо власного домену покроково пояснює кожен крок, а ціни показують, що входить до Pro.
Запитання
Що таке DNS простими словами?
DNS (Domain Name System) — це довідник інтернету. Він перетворює назву, яку люди можуть запам'ятати, як example.com, на дані, потрібні комп'ютерам — зазвичай IP-адресу, — щоб браузер міг знайти правильний сервер.
У чому різниця між записом A і CNAME?
Запис A вказує назву безпосередньо на IPv4-адресу. CNAME вказує назву на іншу назву хоста, і пошук продовжується звідти. CNAME зручні, коли IP-адреси вашого хостингу можуть змінитися, але стандартний CNAME не можна використовувати для кореневого домену.
Скільки часу триває поширення DNS?
Часто кілька хвилин, інколи години. Зміни з'являються в міру того, як закінчується кеш старого запису, що залежить від його TTL. Зміна серверів імен може тривати день-два, бо ці записи кешуються довше.
Чи зламає зміна DNS для мого сайту пошту?
Лише якщо ви змінюєте або видаляєте записи, від яких залежить пошта, — записи MX і TXT, як SPF, DKIM і DMARC. Додавання CNAME для www або app не торкається пошти. Переїзд домену на нові сервери імен може зламати пошту, якщо спершу не перенести ці записи.
Навіщо використовувати www або app замість кореневого домену?
Піддомен на кшталт www.example.com або app.example.com може використовувати CNAME, про що просять багато хостингових платформ. Кореневий домен (example.com) не може мати стандартний CNAME, тому йому потрібні записи A або спеціальна для провайдера функція ALIAS, ANAME чи CNAME-flattening.