AlmaLinux 9: настройка домена и DNS с нуля
Сайт по IP-адресу выглядит несолидно и не запоминается — людям нужен домен. Настройка домена и DNS на AlmaLinux 9 с нуля связывает ваше доменное имя с сервером: браузер посетителя узнаёт IP по имени, попадает на ваш сервер и открывает нужный сайт. Мы разберём, как прописать DNS-записи у регистратора, привязать домен через виртуальный хост Nginx, открыть порты в firewalld и выпустить бесплатный SSL-сертификат для HTTPS. Учтём и специфику RHEL: certbot ставится из EPEL, а SELinux следит за доступом.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Как работает DNS простыми словами
DNS — это телефонная книга интернета. Люди помнят имена вроде example.com, а серверы общаются по числовым IP-адресам. Когда посетитель вводит домен, его устройство спрашивает у системы DNS: «какой IP у этого имени?» — и получает адрес вашего сервера, после чего идёт именно туда. Без этой связки браузер просто не знал бы, к какой машине обращаться.
Ключевую роль играет A-запись — она сопоставляет доменному имени конкретный IPv4-адрес. Есть и другие типы: AAAA для адресов IPv6, CNAME для псевдонимов, MX для почты. Но для запуска сайта достаточно понять и настроить A-запись. Важный нюанс, который экономит нервы новичкам: изменения DNS распространяются по миру не мгновенно, а от нескольких минут до суток — это называется распространением, и его нельзя ускорить. Поэтому не паникуйте, если сразу после настройки сайт открывается не везде. Разберём процесс по шагам.
Полезно понимать, почему распространение вообще занимает время, — тогда ожидание перестаёт тревожить. DNS устроен как многоуровневый кэш: ответы на запросы «какой IP у этого имени» временно запоминаются на серверах провайдеров по всему миру, чтобы не дёргать первоисточник по каждому обращению. Как долго хранить ответ, задаёт параметр TTL вашей записи. Когда вы меняете IP, старое значение продолжает жить в чужих кэшах ровно до истечения их TTL, и только потом они спросят заново и получат новый адрес. Поэтому если заранее, за сутки до переезда, понизить TTL до нескольких минут, смена IP разойдётся по миру почти мгновенно. Это стандартный приём при переносе сайта на новый сервер без длинного простоя, и знать про него стоит заранее.
Прописываем A-запись у регистратора
Настройка DNS делается не на сервере, а в панели управления вашим доменом — у регистратора или DNS-провайдера, где вы покупали имя. Зайдите в раздел управления DNS-записями и создайте A-запись, указав в ней IP-адрес вашего VPS. Обычно заводят две записи: одну для «голого» домена (в поле имени ставят символ @ или оставляют пустым), вторую — для поддомена www.
Значение TTL определяет, как долго ответ кэшируется; на этапе настройки удобно поставить небольшое значение вроде 300 секунд, чтобы изменения применялись быстрее, а позже вернуть стандартные несколько часов. После сохранения записи проверьте, что мир начал видеть новый IP, командой dig +short example.com. Если в ответ приходит IP вашего сервера — DNS настроен верно и распространение началось. Если пусто или старый адрес — подождите и проверьте ещё раз. Утилита dig в AlmaLinux входит в пакет bind-utils, который при необходимости ставится командой dnf install -y bind-utils.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на AlmaLinux 9Готовим сервер и открываем порты
Пока распространяются DNS-записи, настройте сервер принимать запросы для вашего домена. Если веб-сервер ещё не стоит, поставьте Nginx, включите его и откройте веб-порты в firewalld:
dnf install -y nginx
systemctl enable --now nginx
firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload
Теперь создайте виртуальный хост — конфиг, который говорит Nginx, какой сайт отдавать для вашего домена. В файле /etc/nginx/conf.d/example.com.conf опишите серверный блок с директивой server_name example.com www.example.com; и корнем сайта root /var/www/example.com;. Директива server_name — это и есть привязка домена к сайту: по ней Nginx понимает, какой блок обслуживает example.com. Так на одном сервере уживаются несколько доменов, каждый со своим виртуальным хостом. В RHEL-семействе конфиги кладут в /etc/nginx/conf.d/, откуда они подхватываются автоматически.
Включаем сайт и учитываем SELinux
Проверьте синтаксис и перезагрузите Nginx:
nginx -t
systemctl reload nginx
Команда nginx -t обязательна перед каждой перезагрузкой: она ловит опечатки до того, как они уронят сервер. Если ответ «test is successful», применяйте через reload. Здесь всплывает типичная для AlmaLinux тонкость: если корень сайта лежит вне стандартной папки, SELinux заблокирует доступ Nginx, хотя обычные права верны. Пометьте папку сайта правильным контекстом командой sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?" и примените её через sudo restorecon -Rv /var/www/example.com. Когда DNS распространится, откройте http://example.com — появившаяся страница подтвердит, что цепочка «домен → DNS → сервер → сайт» замкнулась.
Выпускаем бесплатный SSL-сертификат
Современный сайт обязан открываться по HTTPS: без него браузеры показывают предупреждение, а поисковики понижают в выдаче. Бесплатные сертификаты выдаёт Let's Encrypt, а автоматизирует всё certbot, который в AlmaLinux ставится из EPEL:
dnf install -y epel-release
dnf install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot сам свяжется с Let's Encrypt, подтвердит, что домен принадлежит вам (проверив, что он указывает на этот сервер), получит сертификат и пропишет его в конфиг Nginx, настроив перенаправление с HTTP на HTTPS. Поэтому запускать его нужно только после того, как DNS уже указывает на сервер. После успешного выпуска откройте https://example.com и убедитесь, что появился замочек. Сертификаты действуют 90 дней, но certbot ставит задачу автопродления через таймер systemd, так что забывать о них не придётся.
Проверяем автопродление и диагностику
Чтобы убедиться, что сертификат будет продлеваться сам, запустите пробное продление:
certbot renew --dry-run
Если команда отработала без ошибок, механизм автопродления настроен корректно. Если же что-то не открывается, диагностика идёт от имени к серверу. Сначала проверьте DNS командой dig +short example.com — приходит ли правильный IP. Если IP верный, а сайт не грузится, проверьте с сервера, слушает ли Nginx нужные порты (sudo ss -tulpn | grep nginx) и открыты ли они в firewalld (firewall-cmd --list-all). Не забудьте про SELinux — при отказе доступа загляните в sudo ausearch -m avc -ts recent. Ошибку самого Nginx покажет sudo journalctl -u nginx -n 30. Такой порядок — от DNS к фаерволу, SELinux и веб-серверу — позволяет быстро локализовать, на каком звене застрял запрос.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на AlmaLinux 9Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Почему сайт открывается у меня, но не у друга?
Скорее всего, ещё идёт распространение DNS: ваш провайдер уже обновил кэш, а его — нет. Обычно всё выравнивается в течение нескольких часов, максимум за сутки.
certbot не находится — что делать?
В AlmaLinux он лежит в репозитории EPEL. Подключите его командой dnf install epel-release, после чего certbot и плагин для Nginx установятся штатно.
Сайт по HTTP работает, а по HTTPS нет — почему?
Проверьте, открыт ли порт 443 в firewalld и не блокирует ли SELinux. Также убедитесь, что certbot успешно получил сертификат и прописал его в конфиг Nginx.
Как оплатить VPS с чистым IP под домен из России?
У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.