Перейти к содержанию

Обзор развертывания 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.

Контейнер запускается и управляется командой:

docker compose up -d
Эта команда выполняется из директории /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.

Для управления сервисом используйте следующие команды:

  • Запуск сервиса:

    systemctl start bt
    

  • Остановка сервиса:

    systemctl stop bt
    

  • Перезапуск сервиса:

    systemctl restart bt
    

  • Проверка статуса:

    systemctl status bt
    

Контейнер прокси Docker управляется через Docker Compose из директории /root/nginx:

  • Запуск контейнера:

    docker compose up -d
    

  • Перезапуск контейнера:

    docker compose up -d --force-recreate
    

Права доступа и безопасность

Учетные данные по умолчанию для интерфейса aaPanel:

  • Имя пользователя: aaPanel

  • Пароль: aaPanel123

Доступ к панели защищен с помощью уникального, трудноугадываемого пути, добавляемого к домену (например, domain.com/adminpath). Прямой доступ к корневому пути / перенаправляется на этот уникальный путь.

Конфигурация Nginx отключает проверку SSL для внутреннего соединения прокси (proxy_ssl_verify off), чтобы учесть самоподписанный сертификат, используемый aaPanel на порту 3000. Внешние клиенты подключаются через HTTPS, что обеспечивает шифрование трафика между браузером и прокси.

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×