Создание поддомена на nginx пошаговое руководство

Как сделать поддомен nginx

Как сделать поддомен nginx

Поддомен позволяет разделять функциональность сайта, размещать отдельные проекты или тестовые окружения. Настройка через 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/ – поддомен

Этапы создания каталога:

  1. sudo mkdir -p /var/www/blog.example.com – создаёт директорию с родительскими папками.
  2. sudo chown -R www-data:www-data /var/www/blog.example.com – назначает владельца и группу для веб-сервера.
  3. 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 определяют, на какой поддомен будут приходить запросы и где будут храниться его файлы. Для корректной работы важно указать точное имя поддомена и путь к директории.

Этапы настройки:

  1. Откройте конфигурационный файл поддомена в /etc/nginx/sites-available/.
  2. Установите server_name на полное имя поддомена, например: blog.example.com.
  3. Укажите 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 в директории поддомена.

Ссылка на основную публикацию