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

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

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

Для развертывания aaPanel требуется серверная среда Linux, в частности Ubuntu, с правами root. Для успешной установки необходимы следующие компоненты и условия:

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

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

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

  • Зависимости: Процесс установки обеспечивает наличие curl, wget и python3-pexpect.

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

Интерфейс aaPanel доступен через полное доменное имя (FQDN), сформированное с использованием идентификатора сервера. Стандартный формат адреса панели:

aaPanel<Server ID>.hostkey.in:443

Если настроено пользовательское доменное имя, панель будет доступна через это конкретное доменное имя по протоколу HTTPS (порт 443).

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

Приложение и связанная с ним конфигурация обратного прокси-сервера распределены по определенным каталогам на хост-системе.

  • Каталог установки aaPanel: /www/server/panel

  • Бинарный файл aaPanel: /usr/bin/bt

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

  • Файл Compose для Nginx: /root/nginx/compose.yml

  • Файл окружения Nginx: /data/nginx/nginx-certbot.env

  • SSL-сертификаты: /etc/letsencrypt (монтируется через том Docker nginx_secrets)

  • Каталог ACME Challenge: /var/www/letsencrypt (внутри контейнера Nginx)

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

Приложение aaPanel устанавливается с помощью официального скрипта установщика разработчика. Процесс включает загрузку скрипта, его выполнение и настройку начальных учетных данных администратора.

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

    • Устаревшие процессы apt завершаются для освобождения блокировок.

    • Необходимые пакеты (curl, wget, python3-pexpect) устанавливаются через apt.

  2. Выполнение установщика:

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

    • Скрипт выполняется с аргументом aapanel и автоматическим подтверждением (-y).

    • Служба bt включается и запускается через systemd.

  3. Начальная конфигурация:

    • Порт панели изменяется на 3000 с помощью интерфейса командной строки bt.

    • Пароль администратора устанавливается в значение aaPanel123.

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

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

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

Меры безопасности реализуются через настройку портов, аутентификацию пользователей и параметры обратного прокси-сервера.

  • Аутентификация:

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

    • Пароль: aaPanel123

    • Путь администратора: Уникальный путь генерируется во время установки и сохраняется в /www/server/panel/data/admin_path.pl. Доступ к корневому пути / перенаправляется на этот путь администратора.

  • Межсетевой экран и порты:

    • Внутренняя служба aaPanel прослушивает порт 3000 (только localhost).

    • Внешний доступ обеспечивается через Nginx на порту 443 (HTTPS).

    • HTTP-трафик на порту 80 перенаправляется на HTTPS.

  • Заголовки безопасности прокси:

    • Обратный прокси-сервер Nginx передает заголовки, включая X-Real-IP, X-Forwarded-For, X-Forwarded-Proto и X-Forwarded-Port, для обеспечения правильной идентификации клиента и обработки протокола.

Базы данных

Предоставленные данные конфигурации не содержат конкретной информации об установке баз данных, строках подключения или местах хранения для aaPanel. aaPanel обычно управляет базами данных внутренне через свой веб-интерфейс, но явные детали конфигурации базы данных отсутствуют в исходных файлах.

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

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

  • Образ контейнера: jonasal/nginx-certbot:latest

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

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

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

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

Конфигурация Docker Compose

Файл compose.yml определяет следующие службы и тома:

Параметр Значение Описание
Имя службы nginx Служба обратного прокси-сервера Nginx.
Образ jonasal/nginx-certbot:latest Образ, содержащий Nginx и Certbot.
Окружение CERTBOT_EMAIL=hkadm@hostkey.com Электронная почта для уведомлений Let's Encrypt.
Файл окружения /data/nginx/nginx-certbot.env Содержит RENEWAL_INTERVAL=8d.
Том 1 nginx_secrets:/etc/letsencrypt Внешний том для SSL-сертификатов.
Том 2 /data/nginx/user_conf.d:/etc/nginx/user_conf.d Каталог хоста для конфигураций сайтов Nginx.

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

Nginx действует как обратный прокси-сервер для aaPanel, обрабатывая завершение SSL-сессий и пересылку запросов.

Стандартная конфигурация домена (aaPanel<Server ID>.hostkey.in)

  • Файл конфигурации: /data/nginx/user_conf.d/aaPanel<Server ID>.hostkey.in.conf

  • Обработка SSL:

    • Проверка SSL отключена для upstream-соединения (proxy_ssl_verify off).

    • Прокси-сервер подключается к https://127.0.0.1:3000.

    • Включен proxy_ssl_server_name.

  • Перенаправления:

    • Запросы к / и пути администратора с завершающим слэшем перенаправляются (301) на правильный путь администратора без завершающего слэша.

    • Запросы ACME challenge (/.well-known/acme-challenge/) обслуживаются из /var/www/letsencrypt.

Конфигурация пользовательского домена

Если указано пользовательское доменное имя, генерируется отдельный файл конфигурации в /data/nginx/user_conf.d/<final_domain>.conf.

  • Перенаправление HTTP на HTTPS: Трафик порта 80 перенаправляется на HTTPS.

  • SSL-сертификаты:

    • Сертификат: /etc/letsencrypt/live/<final_domain>/fullchain.pem

    • Ключ: /etc/letsencrypt/live/<final_domain>/privkey.pem

  • Интеграция с Certbot:

    • Certbot выполняется внутри контейнера Nginx для получения сертификатов с использованием метода webroot (/var/www/letsencrypt).

    • RENEWAL_INTERVAL установлен в 8d в файле окружения.

Настройки разрешений

Разрешения на файлы и каталоги явно задаются в процессе развертывания.

  • Каталог Nginx: /root/nginx принадлежит root:root с режимом 0755.

  • Файл Compose: /root/nginx/compose.yml принадлежит root:root с режимом 0644.

  • Файл окружения: /data/nginx/nginx-certbot.env принадлежит root:root с режимом 0644.

  • Файлы конфигурации Nginx: Файлы в /data/nginx/user_conf.d/ принадлежат root:root с режимом 0644.

  • Каталог ACME: Внутри контейнера /var/www/letsencrypt принадлежит nginx:nginx или nobody:nogroup, чтобы разрешить Certbot записывать файлы вызовов.

Расположение файлов конфигурации и данных

Компонент Путь Описание
Бинарный файл aaPanel /usr/bin/bt Основной скрипт управления aaPanel.
Данные aaPanel /www/server/panel/data Содержит данные времени выполнения, включая admin_path.pl.
Конфигурации Nginx /data/nginx/user_conf.d Каталог для конфигураций виртуальных хостов.
Docker Compose /root/nginx/compose.yml Определение службы Docker для Nginx/Certbot.
Окружение Nginx /data/nginx/nginx-certbot.env Переменные окружения для контейнера Nginx.
SSL-сертификаты /etc/letsencrypt Хранилище сертификатов Let's Encrypt (том Docker).

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

Порт Протокол Служба Доступ
443 HTTPS Обратный прокси-сервер Nginx Внешний
80 HTTP Перенаправление Nginx Внешний (перенаправляет на 443)
3000 HTTPS Внутренняя служба aaPanel Внутренний (только 127.0.0.1)

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

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

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

    • Базовая служба называется bt.

    • Она включена для запуска при загрузке через systemd.

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

    • Перезапуск панели: /usr/bin/bt 1

    • Просмотр информации о панели: /usr/bin/bt 14 (Отображает URL входа, имя пользователя и пароль).

    • Изменение порта: /usr/bin/bt 8

    • Изменение пароля: /usr/bin/bt 5

    • Изменение имени пользователя: /usr/bin/bt 6

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

    • Запуск/обновление прокси-сервера Nginx: docker compose up -d, выполняемая в /root/nginx.

    • Проверка конфигурации Nginx: docker exec nginx-nginx-1 nginx -t

    • Перезагрузка Nginx: docker exec nginx-nginx-1 nginx -s reload

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