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

Обзор развертывания aaPanel на сервере

Предварительные требования и базовые условия

Для развертывания aaPanel требуется серверная среда на базе Linux со следующими характеристиками:

  • Операционная система: Ubuntu (подтверждено через менеджер пакетов apt).

  • Привилегии: Требуется доступ root для установки системных пакетов, управления службами и настройки межсетевого экрана (firewall).

  • Сетевой доступ: Сервер должен иметь исходящий доступ в интернет для загрузки установщика и получения SSL-сертификатов.

  • Порты:

  • Порт 3000: Внутренний порт службы aaPanel.

  • Порт 443: Внешний порт HTTPS для обратного прокси-сервера Nginx.

  • Порт 80: Порт HTTP, необходимый для проверки вызова ACME (ACME challenge) утилитой Certbot.

FQDN конечной панели

Приложение доступно через домен hostkey.in в следующем формате:

  • Стандартный домен: aaPanel<Server ID>.hostkey.in

  • Порт: 443 (HTTPS)

  • Полный формат URL: https://aaPanel<Server ID>.hostkey.in

Если настроен пользовательский домен, FQDN будет представлять собой конкретный пользовательский домен, указанный при настройке, также доступный через порт 443.

Структура файлов и каталогов

Развертывание использует следующую структуру каталогов для конфигурации, данных и сертификатов:

  • Установка aaPanel: /www/server/panel

  • Данные aaPanel: /www/server/panel/data

  • Каталог конфигурации Nginx: /data/nginx/user_conf.d

  • Каталог Compose для Nginx: /root/nginx

  • SSL-сертификаты (том Docker): Монтируются в /etc/letsencrypt внутри контейнера Nginx.

  • Webroot для Certbot: /var/www/certbot (внутри контейнера Nginx).

Процесс установки приложения

Приложение aaPanel устанавливается с помощью официального скрипта установщика версии 7.0. Процесс включает следующие шаги:

  1. Подготовка системы:

    • Убедитесь, что установлены curl, wget и python3-pexpect.

    • Освободите любые блокировки менеджера пакетов apt, чтобы предотвратить конфликты при установке.

  2. Запуск установщика:

    • Скрипт установщика загружается с https://www.aapanel.com/script/install_7.0_en.sh в /root/install_7.0_en.sh.

    • Скрипт выполняется с флагом -y для автоматического принятия значений по умолчанию:

      bash /root/install_7.0_en.sh aapanel -y
      

  3. Инициализация службы:

    • Служба bt запускается и включается для автоматического запуска при загрузке системы.

    • Система ожидает полной инициализации панели.

  4. Конфигурация:

    • Порт панели изменяется на 3000.

    • Имя пользователя по умолчанию устанавливается как aaPanel.

    • Пароль по умолчанию устанавливается как aaPanel123.

    • Путь администратора генерируется и сохраняется в /www/server/panel/data/admin_path.pl.

Контейнеры Docker и их развертывание

Контейнер обратного прокси-сервера и управления SSL развертывается с помощью Docker Compose.

  • Образ: jonasal/nginx-certbot:latest

  • Расположение файла Compose: /root/nginx/compose.yml

  • Команда развертывания:

    docker compose up -d
    
    Эта команда выполняется из каталога /root/nginx.

  • Конфигурация контейнера:

  • Режим сети: host

  • Политика перезапуска: unless-stopped

  • Переменные окружения:

    • CERTBOT_EMAIL: hkadm@hostkey.com
  • Тома (Volumes):

    • nginx_secrets (внешний) монтируется в /etc/letsencrypt.

    • /data/nginx/user_conf.d монтируется в /etc/nginx/user_conf.d.

Прокси-серверы

Nginx действует как обратный прокси-сервер для обработки входящего трафика на порту 443 и пересылки его во внутреннюю службу aaPanel на порту 3000.

  • Расположение конфигурации:

  • Стандартный домен: /data/nginx/user_conf.d/aaPanel<Server ID>.hostkey.in.conf

  • Пользовательский домен: /data/nginx/user_conf.d/<custom_domain>.conf

  • Настройки прокси:

  • Цель: https://127.0.0.1:3000

  • Проверка SSL: Отключена (proxy_ssl_verify off).

  • Заголовки:

    • Host: $host:3000

    • X-Forwarded-Host: $host

    • X-Forwarded-Proto: https

    • X-Forwarded-Port: 443

    • X-Real-IP: $remote_addr

    • X-Forwarded-For: $proxy_add_x_forwarded_for

  • Версия HTTP: 1.1

  • Буферизация: Отключена (proxy_buffering off).

  • SSL/TLS:

  • Сертификаты управляются утилитой Certbot внутри контейнера Docker.

  • Для пользовательских доменов сертификат получается через вызов webroot (webroot challenge) в /var/www/certbot.

  • HTTP-запросы перенаправляются на путь администратора или на HTTPS.

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

  • Права доступа к файлам:

  • Каталог конфигурации Nginx (/root/nginx): 0755 (Владелец: root, Группа: root).

  • Файл Compose (/root/nginx/compose.yml): 0644 (Владелец: root, Группа: root).

  • Файлы конфигурации пользователя Nginx: 0644 (Владелец: root, Группа: root).

  • Конфигурация пользователя:

  • Имя администратора aaPanel настроено как aaPanel.

  • Пароль по умолчанию установлен как aaPanel123.

  • Межсетевой экран (Firewall):

  • Порты 80 и 443 должны быть открыты для обеспечения внешнего доступа и проверки SSL-сертификатов.

  • Порт 3000 используется внутренне и не открыт напрямую для публичного интернета.

Доступные порты для подключения

Порт Протокол Описание
80 HTTP Используется для проверки вызова ACME и перенаправления.
443 HTTPS Основной порт доступа к интерфейсу aaPanel через Nginx.
3000 HTTP/HTTPS Внутренний порт службы aaPanel (за прокси-сервером).

Запуск, остановка и обновление

Служба aaPanel управляется с помощью командной утилиты bt и systemd.

  • Управление службой:

  • Имя службы: bt.

  • Для обеспечения работы службы и её включения:

    systemctl start bt
    systemctl enable bt
    

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

  • Для перезапуска панели и применения изменений конфигурации:

    /usr/bin/bt 1
    

  • Просмотр пути администратора:

  • Для получения текущего пути входа администратора:

    bt 14
    

  • Путь также сохраняется в файле /www/server/panel/data/admin_path.pl.

  • Управление контейнером Docker:

  • Для перезапуска контейнера прокси-сервера Nginx:

    docker compose restart
    

  • Для перезагрузки конфигурации Nginx внутри контейнера:

    docker exec nginx-nginx-1 nginx -s reload
    

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