Домен куплено, VPS є, а браузер однаково пише «не вдається отримати доступ до сайту». Майже завжди бракує двох DNS-записів і вебсервера, який справді відповідає на потрібній адресі. Ось увесь шлях — від реєстратора до зеленого замка HTTPS.
Спершу: чи приймає тариф вебтрафік?
Відвідувачі під'єднуються до портів 80 і 443 вашого сервера. Для цього потрібен тариф зі своєю публічною IP-адресою. NAT-тарифи прокидають лише персональний SSH-порт, тому сайт на домені на них не підняти — різницю пояснює стаття виділений IP чи NAT. Невеликому сайту вистачить Nano-IP.
1. Дізнаємося адреси сервера
IPv4 та IPv6 вказані на сторінці сервера в особистому кабінеті. У прикладах використовуємо документаційні адреси:
- IPv4:
203.0.113.10 - IPv6:
2001:db8::10
2. Створюємо DNS-записи
Зайдіть туди, де зберігається DNS домену (зазвичай це реєстратор), і додайте:
| Тип | Ім'я | Значення | TTL |
|---|---|---|---|
| A | @ | 203.0.113.10 | 300 |
| AAAA | @ | 2001:db8::10 | 300 |
| CNAME | www | example.com. | 300 |
@ означає сам домен без піддомену. Короткий TTL на кшталт 300 секунд робить помилки дешевими; коли все запрацює, його можна підняти до 3600.
Якщо IPv6 поки не потрібен, запис AAAA пропустіть — див. попередження в кроці 5.
3. Перевіряємо, що DNS відповідає
Не вірте напису «збережено» в реєстратора. Запитайте DNS напряму:
dig +short example.com A
dig +short example.com AAAA
dig +short www.example.com
dig +short example.com A @1.1.1.1
Останній рядок запитує публічний резолвер — це ближче до того, що бачать відвідувачі. Якщо повертається ваша IP-адреса, з DNS усе.
4. Змушуємо сервер відповідати
Ставимо nginx і відкриваємо порти:
apt update && apt install -y nginx
ufw allow 80/tcp
ufw allow 443/tcp
Відкрийте http://example.com — має з'явитися вітальна сторінка nginx. Тепер додамо HTTPS із безкоштовним сертифікатом:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot сам редагує конфіг nginx, вмикає редирект на HTTPS і подовжує сертифікат автоматично. Для справжнього застосунку за nginx знадобиться наша інструкція зі зворотного проксі з HTTPS.
5. Пастка з IPv6
На цьому спотикаються багато хто. Ви додали AAAA, а nginx слухає лише IPv4. Відвідувачі з IPv6 (а це багато мобільних мереж) спершу пробують IPv6-адресу — і отримують помилку. Перевірте, що в блоці server є обидва рядки:
listen 80;
listen [::]:80;
У стандартному конфігу nginx на Ubuntu [::] уже є, а в саморобних його часто гублять. Перевірте з машини, де є IPv6:
curl -6 -I https://example.com
Часті проблеми
- Показується стара IP-адреса: її закешував ваш локальний резолвер. Зачекайте, поки спливе TTL, або запитайте
@1.1.1.1, як вище. - Certbot падає за таймаутом: закритий порт 80 або DNS ще не вказує на сервер. Перевірте
ufw statusі зновуdig. - Без www працює, з www — ні: сертифікат або блок server не містять
www. Перезапустіть certbot з обома іменами.
Про зворотний DNS
Записи A й AAAA ведуть від імені до IP. Зворотний DNS (PTR) — у зворотний бік, і налаштовується він в особистому кабінеті, а не в реєстратора. Потрібен він лише для пошти або коли якийсь сервіс його перевіряє — подробиці в нашій інструкції з PTR.
Якщо викладаєте сайт уперше, на сторінці про сайти розібрано вибір тарифу, а в документації з мережі — які адреси отримує кожен тариф.
Коментарі
Поки немає коментарів. Будьте першим.