Обзор развертывания aaPanel на сервере¶
Предварительные требования и основные условия¶
Процесс развертывания требует сервера с операционной системой Ubuntu. Установка и конфигурация должны выполняться с правами root. Приложение устанавливается с помощью официального скрипта установщика aaPanel версии 7.0, который настраивает необходимые системные зависимости.
В процессе развертывания создается слой прокси с использованием Nginx и Certbot, управляемых внутри контейнера Docker, для завершения SSL-соединений и маршрутизации доменов.
Финальный URL доступа¶
Интерфейс aaPanel доступен через обратный прокси на домене hostkey.in. Полное доменное имя (FQDN) имеет следующий формат:
aaPanel<Server ID>.hostkey.in:443
Где <Server ID> — уникальный идентификатор конкретного экземпляра сервера. Для развертываний с использованием пользовательских доменов URL будет соответствовать настроенному пользовательскому домену на порту 443.
Процесс установки приложения¶
Приложение aaPanel устанавливается с помощью официального shell-скрипта, предоставляемого разработчиком. Установщик загружается непосредственно с адреса https://www.aapanel.com/script/install_7.0_en.sh и выполняется с определенными параметрами для автоматизации настройки.
Установка выполняет следующие действия:
-
Загружает и выполняет
install_7.0_en.shс аргументомaapanel. -
Устанавливает сервис
btи настраивает его запуск при инициализации системы. -
Настраивает панель на прослушивание внутреннего порта
3000. -
Устанавливает имя администратора по умолчанию как
aaPanel. -
Устанавливает пароль администратора по умолчанию как
aaPanel123. -
Генерирует уникальный путь администратора для интерфейса входа.
Лог установки сохраняется в файле /root/aapanel_install.log.
Контейнеры Docker и их развертывание¶
Контейнер Docker выполняет функции обратного прокси и менеджера SSL. Он развертывается с использованием Docker Compose.
Используемый образ контейнера: jonasal/nginx-certbot:latest. Конфигурация определяется в файле /root/nginx/compose.yml.
Развертывание определяет следующие точки монтирования (volume mounts):
-
nginx_secrets: Внешний том, отображенный в/etc/letsencryptдля хранения SSL-сертификатов. -
/data/nginx/user_conf.d: Каталог хоста, отображенный в/etc/nginx/user_conf.dдля пользовательских файлов конфигурации Nginx.
Контейнер запускается и управляется командой:
Эта команда выполняется из директории/root/nginx. Прокси-серверы¶
Контейнер Nginx действует как обратный прокси для приложения aaPanel, работающего локально на 127.0.0.1:3000. Он завершает HTTPS-соединения на порту 443 и пересылает трафик на внутренний порт приложения.
Конфигурация прокси обрабатывает следующее:
-
Перенаправление: Запросы к корневому пути
/перенаправляются с кодом состояния301на уникальный путь администратора. -
Настройки прокси:
-
proxy_pass:https://127.0.0.1:3000 -
proxy_ssl_verify: Установлено вoffдля обхода проверки самоподписанных сертификатов для внутреннего сервиса aaPanel. -
Внутреннему сервису передаются заголовки
Host,X-Forwarded-Host,X-Forwarded-Proto,X-Real-IPиX-Forwarded-For. -
Используется HTTP/1.1 с параметром
proxy_buffering off.
Для пользовательских доменов конфигурация хранится в файле /data/nginx/user_conf.d/<final_domain>.conf. Для стандартных доменов hostkey конфигурация применяется к файлу /data/nginx/user_conf.d/aaPanel<Server ID>.hostkey.in.conf.
Управление SSL-сертификатами¶
SSL-сертификаты управляются утилитой Certbot внутри контейнера Docker.
-
Email: Сертификат регистрируется на адрес
hkadm@hostkey.com. -
Метод: Используется вызов веб-корня (webroot challenge) протокола ACME.
-
Webroot: Контейнер монтирует директорию
/var/www/certbot(созданную внутри контейнера) для предоставления файлов вызова. -
Хранение: Сертификаты сохраняются в томе
nginx_secretsв директории/etc/letsencrypt. -
Продление: Автоматическое продление обрабатывается образом
jonasal/nginx-certbot.
Структура файлов и директорий¶
В развертывании используются следующие ключевые директории:
-
/root/nginx: Содержит определение Docker Compose и файлы окружения. -
/data/nginx/user_conf.d: Хранит конфигурации блоков сервера Nginx как для стандартных, так и для пользовательских доменов. -
/www/server/panel/data: Внутренняя директория данных aaPanel, содержащая системные конфигурации и данные пользователей. -
/etc/letsencrypt: Точка монтирования для SSL-сертификатов (через том Docker).
Расположение файлов конфигурации и данных¶
Основные файлы конфигурации и данных находятся по следующим путям:
| Файл / Директория | Описание |
|---|---|
/www/server/panel/data/admin_path.pl | Содержит сгенерированный уникальный путь входа администратора. |
/root/nginx/compose.yml | Конфигурация Docker Compose для прокси. |
/root/nginx/nginx-certbot.env | Переменные окружения для сервиса Certbot. |
/data/nginx/user_conf.d/*.conf | Конфигурации блоков сервера Nginx. |
/usr/bin/bt | Исполняемый файл управления aaPanel. |
/root/aapanel_install.log | Файл лога установки. |
Доступные порты для соединения¶
Система использует следующие порты для внутреннего и внешнего взаимодействия:
| Порт | Протокол | Описание |
|---|---|---|
| 3000 | HTTP/HTTPS | Внутренний порт, используемый aaPanel. Доступен только на localhost. |
| 443 | HTTPS | Внешний порт для обратного прокси Nginx. |
| 80 | HTTP | Используется для вызовов ACME и перенаправления на HTTPS. |
Запуск, остановка и обновление¶
Сервис aaPanel управляется системой инициализации systemd под именем сервиса bt.
Для управления сервисом используйте следующие команды:
-
Запуск сервиса:
-
Остановка сервиса:
-
Перезапуск сервиса:
-
Проверка статуса:
Контейнер прокси Docker управляется через Docker Compose из директории /root/nginx:
-
Запуск контейнера:
-
Перезапуск контейнера:
Права доступа и безопасность¶
Учетные данные по умолчанию для интерфейса aaPanel:
-
Имя пользователя:
aaPanel -
Пароль:
aaPanel123
Доступ к панели защищен с помощью уникального, трудноугадываемого пути, добавляемого к домену (например, domain.com/adminpath). Прямой доступ к корневому пути / перенаправляется на этот уникальный путь.
Конфигурация Nginx отключает проверку SSL для внутреннего соединения прокси (proxy_ssl_verify off), чтобы учесть самоподписанный сертификат, используемый aaPanel на порту 3000. Внешние клиенты подключаются через HTTPS, что обеспечивает шифрование трафика между браузером и прокси.