
Поддомен позволяет разделять функциональность сайта, размещать отдельные проекты или тестовые окружения. Настройка через nginx обеспечивает высокую производительность и гибкое управление трафиком.
Процесс создания поддомена требует точного выполнения нескольких этапов: проверка DNS-записей, создание каталога на сервере, настройка конфигурации nginx и корректное указание server_name и root. Ошибки на любом этапе могут привести к недоступности поддомена.
Для успешной настройки важно использовать прямые пути к директориям, присвоить корректные права доступа и убедиться, что nginx запущен с актуальной конфигурацией. Проверка синтаксиса конфигурационных файлов с помощью nginx -t помогает избежать ошибок до перезапуска сервера.
После завершения всех шагов поддомен можно тестировать через браузер или инструменты командной строки, чтобы подтвердить корректность маршрутизации и работу сервиса на новом поддомене.
htmlПроверка доступности домена и DNS-записей
Перед созданием поддомена необходимо убедиться, что основной домен корректно разрешается в DNS. Используйте команду dig example.com или nslookup example.com для проверки A-записи, которая должна указывать на IP-адрес сервера.
Для поддомена создайте отдельную A-запись или CNAME в панели управления DNS. Например, поддомен test.example.com можно направить на тот же IP, что и основной домен, или на отдельный сервер при необходимости разделения нагрузки.
После внесения изменений убедитесь, что новые записи распространились по DNS с помощью dig test.example.com +short. Важно дождаться обновления кеша, которое может занять от нескольких минут до 24 часов в зависимости от TTL.
Проверка доступности через команду ping позволяет убедиться, что сервер отвечает на запросы, а использование curl -I http://test.example.com покажет корректный ответ от веб-сервера, подтверждая, что DNS-настройки готовы для конфигурации nginx.
Установка и проверка nginx на сервере
Для установки nginx на Ubuntu используйте команду sudo apt update и sudo apt install nginx. На CentOS или RHEL применяйте sudo yum install epel-release и sudo yum install nginx. После установки убедитесь, что сервис включен и запускается автоматически через sudo systemctl enable nginx.
Проверка состояния сервера выполняется командой sudo systemctl status nginx. Если сервис активен, он отображается как active (running). В случае ошибок ознакомьтесь с логами /var/log/nginx/error.log для выявления проблем.
Для проверки версии nginx и корректности установки используйте nginx -v. Тестирование базового ответа сервера можно провести через браузер, введя IP-адрес сервера, или с помощью curl -I http://<ваш_сервер_IP>, чтобы получить заголовки HTTP и убедиться, что nginx отвечает на запросы.
Перед настройкой поддомена рекомендуется создать резервную копию стандартного конфигурационного файла /etc/nginx/nginx.conf, чтобы при ошибках можно было восстановить рабочее состояние сервера.
Создание директории для поддомена
Для поддомена необходимо выделить отдельный каталог на сервере. Рекомендуется использовать структуру внутри /var/www/ для удобного управления несколькими проектами.
Пример структуры:
- /var/www/example.com/ – основной сайт
- /var/www/blog.example.com/ – поддомен
Этапы создания каталога:
- sudo mkdir -p /var/www/blog.example.com – создаёт директорию с родительскими папками.
- sudo chown -R www-data:www-data /var/www/blog.example.com – назначает владельца и группу для веб-сервера.
- sudo chmod -R 755 /var/www/blog.example.com – задаёт права для корректной работы nginx.
Для проверки работы создайте тестовый файл index.html с небольшим содержимым. После этого можно переходить к настройке конфигурации поддомена в nginx.
Настройка прав доступа к директории
Правильные права доступа обеспечивают корректную работу nginx и защищают файлы поддомена от несанкционированного изменения. Рекомендуется назначать владельцем директории пользователя веб-сервера, обычно www-data на Ubuntu или nginx на CentOS.
Основные команды для настройки:
- sudo chown -R www-data:www-data /var/www/blog.example.com – рекурсивно устанавливает владельца и группу.
- sudo chmod -R 755 /var/www/blog.example.com – даёт права на чтение и выполнение для всех, права на запись только владельцу.
Для файлов, которые должны быть редактируемыми через FTP или CMS, можно использовать sudo chmod 644 /var/www/blog.example.com/*.html, чтобы разрешить чтение группе и другим пользователям, но оставить запись только владельцу.
После настройки прав рекомендуется проверить доступность каталога для nginx командой ls -l /var/www/blog.example.com и убедиться, что права и владелец соответствуют требованиям сервера.
Создание конфигурационного файла поддомена

Каждый поддомен требует отдельного конфигурационного файла nginx для корректной маршрутизации запросов. Рекомендуется создавать файл в каталоге /etc/nginx/sites-available/ и подключать через sites-enabled.
Пример минимальной конфигурации для поддомена blog.example.com:
| Параметр | Значение | Описание |
|---|---|---|
| server_name | blog.example.com | Имя поддомена, на которое будут приходить запросы |
| root | /var/www/blog.example.com | Корневая директория поддомена |
| index | index.html index.htm | Файлы, которые nginx ищет по умолчанию |
| listen | 80 | Порт для HTTP-запросов |
| access_log | /var/log/nginx/blog_access.log | Файл логов доступа |
| error_log | /var/log/nginx/blog_error.log | Файл логов ошибок |
После создания конфигурации подключите её командой sudo ln -s /etc/nginx/sites-available/blog.example.com /etc/nginx/sites-enabled/ и проверьте синтаксис через nginx -t.
Настройка server_name и root для поддомена
Параметры server_name и root определяют, на какой поддомен будут приходить запросы и где будут храниться его файлы. Для корректной работы важно указать точное имя поддомена и путь к директории.
Этапы настройки:
- Откройте конфигурационный файл поддомена в /etc/nginx/sites-available/.
- Установите server_name на полное имя поддомена, например: blog.example.com.
- Укажите root на директорию поддомена, например: /var/www/blog.example.com.
Пример блока server:
- server {
- listen 80;
- server_name blog.example.com;
- root /var/www/blog.example.com;
- index index.html index.htm;
- }
После внесения изменений выполните проверку синтаксиса командой nginx -t. Ошибки в пути или имени поддомена приведут к недоступности сайта. Только после успешной проверки выполняйте перезапуск nginx через sudo systemctl restart nginx.
Проверка синтаксиса и перезапуск nginx
- nginx: configuration file /etc/nginx/nginx.conf test is successful
Если синтаксис верен, выполните перезапуск nginx для применения изменений:
- sudo systemctl restart nginx – полный перезапуск сервиса.
- sudo systemctl reload nginx – перезагрузка без остановки сервиса, применяет новые конфигурации.
После перезапуска проверьте статус сервера командой sudo systemctl status nginx. Статус должен быть active (running). При возникновении ошибок просмотрите /var/log/nginx/error.log для выявления причин и исправления конфигурации.
Тестирование поддомена в браузере
После настройки конфигурации и перезапуска nginx важно проверить работу поддомена через браузер. Введите полный адрес поддомена, например http://blog.example.com, и убедитесь, что отображается тестовая страница из директории /var/www/blog.example.com.
Если страница не загружается, проверьте следующие моменты:
- Правильность server_name и root в конфигурационном файле поддомена.
- Синтаксис конфигурации nginx через nginx -t.
- Права доступа к директории поддомена и файлам.
- Распространение DNS-записей. Используйте dig blog.example.com для проверки, что поддомен указывает на правильный IP.
Для тестирования заголовков HTTP и кода ответа можно использовать curl -I http://blog.example.com. Ожидаемый ответ: HTTP/1.1 200 OK, что подтверждает корректную работу поддомена и доступность файлов через nginx.
Вопрос-ответ:
Что такое поддомен и зачем его создавать на nginx?
Поддомен — это отдельная ветка основного домена, которая позволяет размещать отдельные приложения, тестовые версии сайтов или разделы с уникальным содержимым. На nginx поддомены настраиваются через отдельные блоки server, где указывается server_name и директория с файлами. Такой подход позволяет разграничивать проекты на одном сервере и управлять ими независимо.
Как проверить корректность DNS-записей перед созданием поддомена?
Для проверки используйте команды dig поддомен.домен.com или nslookup поддомен.домен.com. Они покажут IP-адрес, на который указывает запись. Если запись отсутствует, создайте A-запись или CNAME в панели управления доменом. После добавления DNS может обновляться до 24 часов в зависимости от TTL.
Какие права доступа следует установить для директории поддомена?
Рекомендуется назначить владельцем директории пользователя веб-сервера, например www-data на Ubuntu. Доступ устанавливается командой chmod -R 755 /var/www/поддомен, что разрешает чтение и выполнение всем пользователям, а запись только владельцу. Для отдельных файлов, которые будут редактироваться через CMS, можно использовать chmod 644.
Что делать, если nginx не запускается после добавления конфигурации поддомена?
Сначала проверьте синтаксис командой nginx -t. Ошибки в server_name, пути к root или отсутствии точки с запятой приведут к сбою. После исправления ошибок выполните перезапуск nginx через sudo systemctl restart nginx и проверьте статус sudo systemctl status nginx. Логи ошибок находятся в /var/log/nginx/error.log.
Как проверить, что поддомен работает корректно в браузере?
Введите адрес поддомена в браузере, например http://поддомен.домен.com. Если отображается тестовая страница из директории поддомена, значит конфигурация верна. Для дополнительной проверки используйте curl -I http://поддомен.домен.com, чтобы увидеть HTTP-заголовки и код ответа 200 OK. Если страница не открывается, проверьте DNS-записи, права доступа и синтаксис nginx.
Как правильно настроить поддомен на nginx, чтобы он работал отдельно от основного сайта?
Для настройки поддомена создайте отдельную директорию на сервере, например /var/www/blog.example.com, и убедитесь, что права доступа назначены пользователю веб-сервера, например www-data. Затем создайте конфигурационный файл в /etc/nginx/sites-available/, укажите server_name с именем поддомена и путь root к его директории. После этого подключите файл через sites-enabled с помощью ln -s, проверьте синтаксис командой nginx -t и перезапустите сервер через systemctl restart nginx. Для проверки работы поддомена используйте браузер или curl -I http://поддомен.домен.com, чтобы убедиться в получении ответа 200 OK. Если поддомен не открывается, проверьте DNS-записи, права доступа и наличие тестового файла index.html в директории поддомена.
