Nginx. Работа с виртуальными хостами
Виртуальный хост — это конфигурация одного сайта в Nginx: домен, порт, корневой каталог файлов и правила обработки запросов. Один процесс Nginx обслуживает много сайтов, и каждому сайту соответствует свой server-блок в конфигурации. В панели BeAdmin хост можно создавать и редактировать через форму с полями (режим конструктора), а для нестандартных директив — переключиться в режим эксперта и править исходный конфиг. Эта статья — про режим конструктора: создание, редактирование, включение и выключение, удаление. Для установки самого модуля Nginx и общего управления сервисом — отдельная статья.
Создание виртуального хоста
- В боковом меню раздела Nginx нажмите «Создать виртуальный хост».
- Откроется страница в режиме конструктора. Заполните поля и нажмите «Создать».
💡 Сохранение черновика в браузере
Если вы начали заполнять форму создания хоста и закрыли её, не нажав «Создать», панель запомнит ваш ввод — независимо от того, заполняли вы форму в режиме конструктора или эксперта. Когда вернётесь к созданию хоста, появится диалог: «Вы начали заполнять форму ранее. Хотите продолжить?» Кнопка «Продолжить» подгрузит сохранённый ввод обратно в форму. Черновик сбрасывается после успешного создания хоста или явного отказа продолжить.
Дальше — что значит каждое поле формы.
Доменное имя
Доменное имя хоста — то, по которому сайт будет доступен извне. В поле принимается доменное имя или IP-адрес (IPv4 или IPv6); первое подойдёт для обычного сайта, второе — когда сервер отдаёт сайт без DNS-записи.
Два хоста с одинаковой парой «домен + порт» создать нельзя — если такая пара уже занята, панель сообщит об этом и не даст сохранить форму. Поэтому example.com на 80 и на 8080 одновременно поднять можно, а два раза example.com на 80 — нет.
После создания хоста доменное имя поменять нельзя. Если домен надо сменить, удобнее создать новый хост и удалить старый.
Подключение по HTTPS или HTTP
Протокол и порт хоста выбираются переключателем «Подключение по HTTPS (порт 443)» / «Подключение по HTTP (порт 80)». По умолчанию включён HTTPS — это рекомендуемый вариант. Когда HTTPS включён, при создании хоста BeAdmin автоматически выпускает сертификат Let's Encrypt и в дальнейшем продлевает его, пока хост существует.
Если выпуск сертификата завершился ошибкой, хост создаётся с самоподписанным сертификатом-заглушкой, и панель показывает уведомление «Виртуальный хост настроен с самоподписанным сертификатом». Подробнее о том, как устроен выпуск и как перевыпустить сертификат вручную — в статье Выпуск SSL-сертификата; разбор конкретных сообщений об ошибках — в Решение ошибок ACME при выпуске SSL-сертификата.
Чтобы поднять сайт на нестандартном порту (внутренний сервис, несколько сайтов на разных портах одного домена), нажмите «Указать порт вручную» и укажите номер. Допустим любой свободный порт в диапазоне 1–65535.
⚠️ HTTPS только на стандартном порту 443
BeAdmin выпускает сертификат Let's Encrypt только на стандартном HTTPS-порту 443. Если вы выбрали нестандартный порт, работайте по HTTP, а если HTTPS обязателен — подключите свой сертификат вручную через режим эксперта.
Имена index-файлов
Поле задаёт, какие файлы Nginx отдаёт по запросу к каталогу — например, при заходе на https://example.com/. По умолчанию — index.html index.htm. Имена пишутся в одну строку через пробел, в порядке приоритета.
Символы ?, :, ,, ; в имени не допускаются — панель их не пропустит и покажет предупреждение.
Если в хосте есть правило с PHP, index.php автоматически становится первым в списке — отдельно его прописывать не нужно. При удалении PHP-правила index.php так же автоматически уходит из списка.
Путь к файлам
Корневая папка с файлами сайта — то, что в конфиге Nginx попадает в директиву root. Каталог можно выбрать через диалог выбора каталога или ввести путь руками.
Каталог должен существовать на сервере и быть читаемым процессом Nginx, иначе сайт ответит ошибкой 403 или 404. Если планируете класть файлы позже — создайте пустой каталог заранее.
Правила (locations)
Правила — это блоки location в конфиге Nginx, которые определяют, как обрабатывать запросы по разным URL-путям: отдавать статику, передавать запрос в PHP, проксировать на другой сервис, делать редиректы. Чтобы добавить правило к хосту, разверните блок «Дополнительные опции» под основными полями и нажмите «Добавить правило» — панель предложит выбрать шаблон:
- Корневое правило — обработка запросов в корне сайта; всегда есть в хосте.
- Простой — статичный ответ или базовая отдача файлов по пути.
- PHP (FastCGI) — передача запросов в PHP-FPM.
- Проксирование —
proxy_passна upstream (например, на Apache, Node-приложение, Docker-контейнер).
Подробности по каждому шаблону, добавлению и удалению правил — в статье Nginx. Как настроить правила (location) для виртуального хоста.
Связка Nginx и Apache
Если на сервере установлены оба модуля, схема одна: Nginx стоит впереди и принимает запросы из интернета на 80/443, а Apache работает бэкендом на локальных портах 127.0.0.1:8808 (HTTP) и 127.0.0.1:8843 (HTTPS). PHP, .htaccess и Apache-модули обрабатываются на стороне Apache; Nginx проксирует запросы и при необходимости отдаёт статику напрямую.
Автонастройка работает в одну сторону. Если Apache устанавливается, когда Nginx уже стоит — BeAdmin сам подберёт для Apache локальные порты 127.0.0.1:8808/8843. Если же сначала был установлен Apache, а Nginx добавляется поверх — на странице модуля Nginx появится предупреждение о конфликте, и Apache нужно перевести в бэкенд-режим вручную: переустановите модуль Apache на локальных портах 127.0.0.1:8808/8843.
В виртуальном хосте Nginx для такой связки достаточно одного правила типа «Проксирование» с адресом http://127.0.0.1:8808 — TLS терминируется на Nginx, так что обращаться к 8843 обычно не нужно. Как настроить такое правило — в статье Nginx. Как настроить правила (location) для виртуального хоста. Про настройку Apache — в Apache. Быстрый старт.
Редактирование виртуального хоста
Откройте хост из бокового списка раздела Nginx — отобразится та же форма, что и при создании, с двумя отличиями:
- Поле «Доменное имя» неактивно — после создания домен не меняется.
- Порт всегда виден отдельным полем (без HTTPS-переключателя), и его можно поменять напрямую. Если выставить 443,
BeAdminбудет считать хост HTTPS-сайтом и при сохранении выпустит сертификат Let's Encrypt.
Чтобы сохранить изменения, нажмите «Обновить» — кнопка активна только при несохранённых изменениях. Как и при создании, перед применением панель проверяет конфиг и при ошибке оставляет предыдущую рабочую версию.
Включение и выключение хоста
Состояние хоста переключается рядом с кнопкой сохранения:
- На странице создания — «Включить хост» / «Выключить хост» (выбор начального состояния).
- На странице существующего хоста — «Хост включён» / «Хост выключен» (изменения применяются по кнопке «Обновить»).
Когда хост выключен, основной server-блок убирается из конфигурации — сайт перестаёт отвечать на запросы, но запись хоста и его настройки в BeAdmin сохраняются, и хост можно включить обратно в любой момент. SSL-сертификат при этом продолжает автоматически продлеваться. После повторного включения сайт снова заработает по HTTPS без дополнительных действий.
Удаление виртуального хоста
Удалить хост можно по иконке корзины рядом с ним в боковом списке. Чтобы исключить случайное удаление, панель попросит подтвердить операцию вводом имени хоста.
При удалении хоста стираются файл конфигурации Nginx и его логи. Каталог с файлами сайта (тот, что был указан в поле «Путь к файлам») сохраняется — это защита от потери данных при случайном удалении хоста. Если каталог больше не нужен, удалите его вручную.
Режим эксперта
Если стандартной формы конструктора не хватает — например, нужен кастомный try_files, нестандартные access_log, дополнительные fastcgi_param или rate-limiting, — переключитесь в режим эксперта кнопкой «В режим эксперта» в нижней панели формы. Возврат — по кнопке «В режим конструктора».
Подробности по режиму эксперта — стартовый шаблон, переключение между режимами без потери настроек, ручное подключение PHP-FPM — в статье Nginx. Виртуальные хосты в режиме эксперта.
Полезные ссылки
- Nginx. Как настроить правила (location) для виртуального хоста — шаблоны правил, универсальные параметры, проксирование.
- Nginx. Виртуальные хосты в режиме эксперта — исходный конфиг, стартовый шаблон, ручное подключение PHP-FPM.
- Выпуск SSL-сертификата — как панель выпускает Let's Encrypt и как перевыпустить сертификат вручную.
- Решение ошибок ACME при выпуске SSL-сертификата — что делать, если Let's Encrypt не выпустился.
- Apache. Быстрый старт — настройка Apache в связке с Nginx.
- Официальная документация Nginx — справочник по директивам и модулям.