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

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

Процесс включает следующие этапы:

  1. Скачивание скрипта установщика по адресу https://www.aapanel.com/script/install_7.0_en.sh в директорию /root/.

  2. Запуск скрипта с параметром aapanel для установки панели.

  3. Автоматическая настройка параметров доступа:

  4. Смена порта панели на 3000.

  5. Установка имени пользователя aaPanel.

  6. Установка пароля aaPanel123.

  7. Запуск сервиса 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 для загрузки конфигураций.

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

docker compose up -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.

Команды управления:

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

    /usr/bin/bt 1
    

  • Получение информации о панели (включая путь администратора):

    /usr/bin/bt 14
    

Управление контейнером прокси-сервера:

  • Запуск или обновление конфигурации:

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

  • Проверка конфигурации Nginx внутри контейнера:

    docker exec nginx-nginx-1 nginx -t
    

  • Перезагрузка конфигурации Nginx:

    docker exec nginx-nginx-1 nginx -s reload
    

Получение SSL-сертификата для кастомного домена выполняется командой внутри контейнера:

docker exec nginx-nginx-1 certbot certonly --webroot -w /var/www/certbot -d {domain} --email {email} --agree-tos --no-eff-email --non-interactive

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