Обзор развертывания aaPanel на сервере¶
Предварительные требования¶
Для успешного развертывания системы необходимо наличие сервера с операционной системой Ubuntu. Требуется доступ к серверу с правами суперпользователя (root).
Система использует следующие порты:
-
Порт
80для HTTP-трафика и получения сертификатов. -
Порт
443для HTTPS-трафика. -
Порт
3000для доступа к панели управления aaPanel (внутренний порт).
Необходимо наличие установленного пакета Docker и Docker Compose для запуска контейнеров прокси-сервера.
Структура файлов и каталогов¶
Конфигурация и данные системы распределены по следующим директориям:
-
/root/nginx/— каталог для запуска Docker Compose конфигурации прокси-сервера. -
/root/nginx/compose.yml— файл конфигурации Docker Compose. -
/data/nginx/user_conf.d/— каталог с пользовательскими конфигурациями Nginx. -
Файлы конфигурации доменов имеют расширение
.conf(например,domain.confилиhostkey.in.conf). -
/etc/letsencrypt/— каталог для хранения SSL-сертификатов (монтируется в контейнер). -
/www/server/panel/data/— каталог данных панели aaPanel. -
/www/server/panel/data/admin_path.pl— файл, содержащий путь к административной панели. -
/var/www/certbot/— каталог внутри контейнера Nginx для веб-корня ACME (используется для получения сертификатов).
Процесс установки приложения¶
Установка панели управления aaPanel выполняется с помощью официального скрипта установщика версии 7.0.
Процесс включает следующие этапы:
-
Скачивание скрипта установщика по адресу
https://www.aapanel.com/script/install_7.0_en.shв директорию/root/. -
Запуск скрипта с параметром
aapanelдля установки панели. -
Автоматическая настройка параметров доступа:
-
Смена порта панели на
3000. -
Установка имени пользователя
aaPanel. -
Установка пароля
aaPanel123. -
Запуск сервиса
btчерезsystemdи его включение в автозагрузку.
После установки панели развертывается контейнерный прокси-сервер для обработки входящего трафика и SSL-шифрования.
Контейнеры Docker и их запуск¶
Для обработки входящих запросов и управления SSL-сертификатами используется контейнер Nginx с Certbot.
Контейнер запускается через docker compose из директории /root/nginx/.
Используемый образ: jonasal/nginx-certbot:latest.
Параметры запуска контейнера:
-
Режим сети:
host. -
Перезапуск:
unless-stopped. -
Переменные окружения:
-
CERTBOT_EMAIL=hkadm@hostkey.com. -
Монтируемые тома:
-
nginx_secrets(внешний том) монтируется в/etc/letsencryptдля хранения сертификатов. -
Локальная директория
/data/nginx/user_conf.dмонтируется в/etc/nginx/user_conf.dдля загрузки конфигураций.
Команда запуска контейнера:
Команда выполняется из директории/root/nginx/. Прокси серверы¶
В качестве прокси-сервера используется Nginx, работающий внутри Docker-контейнера. Он перенаправляет трафик на внутренний порт панели aaPanel (3000).
Конфигурация прокси включает:
-
Перенаправление корня
/и административного пути на соответствующие адреса с кодом ответа301. -
Прокси-пересылку запросов на
https://127.0.0.1:3000. -
Настройку заголовков для корректной передачи информации о клиенте:
-
Host,X-Forwarded-Host,X-Forwarded-Proto,X-Forwarded-Port,X-Real-IP,X-Forwarded-For. -
Отключение проверки SSL-сервера (
proxy_ssl_verify off) для внутреннего соединения.
Для кастомных доменов конфигурация создается в файле /data/nginx/user_conf.d/{domain}.conf. Она включает блоки для HTTP (порт 80) и HTTPS (порт 443).
Для стандартного домена конфигурация вносится в файл /data/nginx/user_conf.d/{prefix}{server_id}.hostkey.in.conf путем замены блока location /.
Настройки прав¶
Права доступа к файлам и директориям настроены следующим образом:
-
Директория
/root/nginx/и файлы внутри нее (включаяcompose.yml) принадлежат пользователюrootи группеrootс правами0755для директории и0644для файлов. -
Директория
/data/nginx/user_conf.d/и файлы конфигураций принадлежатroot:rootс правами0644. -
Внутри контейнера Nginx для работы Certbot создается директория
/var/www/certbot, права на которую передаются пользователюnginxилиnobody.
Запуск, остановка и обновление¶
Управление сервисом панели aaPanel осуществляется через утилиту bt, расположенную по пути /usr/bin/bt.
Команды управления:
-
Перезапуск панели:
-
Получение информации о панели (включая путь администратора):
Управление контейнером прокси-сервера:
-
Запуск или обновление конфигурации:
Команда выполняется из директории/root/nginx/. -
Проверка конфигурации Nginx внутри контейнера:
-
Перезагрузка конфигурации Nginx:
Получение SSL-сертификата для кастомного домена выполняется командой внутри контейнера: