Обзор развертывания 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(монтируется через том Dockernginx_secrets) -
Каталог ACME Challenge:
/var/www/letsencrypt(внутри контейнера Nginx)
Процесс установки приложения¶
Приложение aaPanel устанавливается с помощью официального скрипта установщика разработчика. Процесс включает загрузку скрипта, его выполнение и настройку начальных учетных данных администратора.
-
Подготовка системы:
-
Устаревшие процессы
aptзавершаются для освобождения блокировок. -
Необходимые пакеты (
curl,wget,python3-pexpect) устанавливаются черезapt.
-
-
Выполнение установщика:
-
Скрипт установщика загружается с
https://www.aapanel.com/script/install_7.0_en.shв/root/install_7.0_en.sh. -
Скрипт выполняется с аргументом
aapanelи автоматическим подтверждением (-y). -
Служба
btвключается и запускается черезsystemd.
-
-
Начальная конфигурация:
-
Порт панели изменяется на
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, для обеспечения правильной идентификации клиента и обработки протокола.
- Обратный прокси-сервер Nginx передает заголовки, включая
Базы данных¶
Предоставленные данные конфигурации не содержат конкретной информации об установке баз данных, строках подключения или местах хранения для 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
-