Домен куплен, 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.
Если выкладываете сайт впервые, на странице про сайты разобран выбор тарифа, а в документации по сети — какие адреса получает каждый тариф.
Комментарии
Пока нет комментариев. Будьте первым.