К основному содержимому

Поддомены: создание и настройка через cPanel и DNS

Домены · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «Поддомены: создание и настройка через cPanel и DNS»

Поддомен — это часть URL перед основным доменом: blog.example.com, shop.example.com. Поддомены позволяют разделить разные части сайта или создать отдельные проекты без покупки нового домена.

Для чего используются поддомены

ПоддоменТипичное использование
www.example.comОсновной сайт (исторически)
blog.example.comБлог на отдельной CMS
shop.example.comИнтернет-магазин
api.example.comAPI-эндпоинты
mail.example.comВеб-почта
staging.example.comТестовая среда
cdn.example.comРаздача статики

Создание поддомена в cPanel

  1. Войдите в cPanel → Домены → Субдомены
  2. В поле «Субдомен» введите: blog
  3. Выберите основной домен из списка
  4. Укажите папку (Document Root): public_html/blog
  5. Нажмите Создать

cPanel автоматически создаёт DNS A-запись для поддомена.

Ручное создание через DNS

Если управляете DNS самостоятельно (Cloudflare и т.д.):

# A-запись (прямой IP)
blog    IN    A    192.168.1.100

# CNAME (псевдоним основного домена)
shop    IN    CNAME    example.com.

# Wildcard — все поддомены
*       IN    A    192.168.1.100
💡 Когда CNAME вместо A: Используйте CNAME, если IP может меняться (CDN, балансировщик нагрузки). Для фиксированного сервера — A-запись надёжнее.

Wildcard-поддомены

Wildcard (*.example.com) позволяет создавать неограниченное количество поддоменов без добавления отдельных DNS-записей. Полезно для SaaS-платформ, где каждый пользователь получает username.example.com.

⚠️ SSL для Wildcard: Обычный SSL-сертификат не покрывает поддомены. Нужен Wildcard SSL (*.example.com) или Let's Encrypt с DNS-challenge.

Поддомены и SEO

Google индексирует поддомены как отдельные сайты. Если блог важен для SEO основного сайта — лучше разместить его в подпапке (example.com/blog/), а не на поддомене. Поддомены теряют передачу авторитета от основного домена.

Создание поддомена в DNS

Добавьте A-запись в панели управления DNS:

ТипИмяЗначениеTTL
AblogYOUR_SERVER_IP300
AapiYOUR_SERVER_IP300
CNAMEwwwyourdomain.com300

Настройка Nginx для поддомена

server {
    listen 80;
    server_name blog.yourdomain.com;
    root /var/www/blog;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

SSL для поддомена

# Отдельный сертификат
certbot --nginx -d blog.yourdomain.com

# Wildcard сертификат (для всех поддоменов)
certbot certonly --dns-cloudflare   -d yourdomain.com   -d "*.yourdomain.com"
💡 Wildcard-сертификат * .domain.com покрывает все поддомены первого уровня: blog.domain.com, api.domain.com, но не sub.blog.domain.com.

Частые ошибки при настройке поддоменов

Три источника почти всех проблем с поддоменами — не та DNS-зона, не тот SSL-сертификат и конфликт конфигов веб-сервера.

NXDOMAIN

Такой ответ dig при запросе поддомена почти всегда означает, что запись добавлена не в той DNS-зоне: например, в панели DNS хостинга, пока домен реально управляется через NS регистратора или Cloudflare. Проверьте, у кого сейчас авторитетные NS-серверы домена: dig example.com NS +short, и добавляйте запись именно там.

NET::ERR_CERT_COMMON_NAME_INVALID

Сертификат выпущен для example.com, а поддомен blog.example.com в него не входит. Обычный SSL от Let's Encrypt покрывает только те имена, что указаны явно при выпуске — для нового поддомена нужен либо отдельный сертификат, либо перевыпуск с добавленным именем, либо Wildcard-сертификат.

nginx: [emerg] duplicate default server for 0.0.0.0:80

В новом конфиге для поддомена случайно продублирован параметр default_server, который уже указан в конфиге основного сайта. На один IP и порт может быть только один default_server — уберите директиву из всех блоков, кроме одного.

Поддомен или подпапка: сравнение

ПараметрПоддоменПодпапка
Передача SEO-веса от основного доменаОграниченнаяПолная
Отдельный SSL-сертификатНужен свой или WildcardНе нужен
Отдельная CMS или технологииЛегкоСложнее (общий движок)
Настройка CDN отдельноВозможнаОбщая для всего домена

Для блога, который должен усиливать позиции основного сайта, обычно выбирают подпапку. Для функционально независимого проекта (личный кабинет, магазин на другом движке) — поддомен, несмотря на потерю части SEO-веса.

Когда поддомены не подходят

Некоторые тарифы виртуального хостинга ограничивают количество поддоменов — проверьте лимит тарифа в лимитах и ресурсах хостинга перед тем, как проектировать архитектуру на десятках поддоменов. Wildcard-поддомены (*.example.com) для SaaS с пользовательскими именами требуют Wildcard SSL и аккуратной обработки на уровне приложения — если ожидается всего 2–3 поддомена, Wildcard избыточен, проще выпустить обычные сертификаты на каждый.

Как проверить результат

Проверяйте DNS и веб-сервер по отдельности — это сразу показывает, где именно проблема:

# Убедиться, что поддомен резолвится в нужный IP
dig blog.example.com A +short

# Проверить, что Nginx отдаёт правильный конфиг для этого имени
curl -I -H "Host: blog.example.com" http://YOUR_SERVER_IP/

# Проверить сертификат для конкретного поддомена
openssl s_client -connect blog.example.com:443 -servername blog.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject

Вторая команда с явным заголовком Host проверяет маршрутизацию Nginx напрямую по IP, в обход DNS — это отличает проблему с DNS от проблемы с конфигом веб-сервера. Если через IP приходит контент не того сайта, дело в server_name, а не в DNS-записи.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке