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

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

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

Для развертывания CloudPanel требуется чистая среда на базе Ubuntu с определенными системными конфигурациями. Перед началом установки должны быть выполнены следующие предварительные требования:

  • Операционная система: Ubuntu (на базе Debian).

  • Привилегии: Для всех шагов установки требуются права root или привилегии sudo.

  • Доступность портов: Порты 80, 443 и 3306 должны быть свободны и не заняты другими службами (например, существующими экземплярами MySQL, MariaDB, Nginx или Apache).

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

  • Управление пакетами: Менеджер пакетов apt должен быть функциональным и обновленным.

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

Полное доменное имя (FQDN) для доступа к интерфейсу CloudPanel следует формату, определенному конфигурацией хоста. На основе предоставленных переменных URL доступа имеет вид:

cloudPanel<Server ID>.hostkey.in:443

Где <Server ID> представляет уникальный идентификатор, назначенный экземпляру сервера. Панель доступна через HTTPS на порту 443.

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

В процессе развертывания создаются определенные каталоги для конфигурации, данных и сертификатов. Основные расположения:

  • /etc/cloudpanel: Основной каталог установки приложения CloudPanel.

  • /root/nginx: Каталог, содержащий конфигурацию Docker Compose для обратного прокси-сервера и управления SSL.

  • /root/nginx/compose.yml: Файл Docker Compose, определяющий службы Nginx и Certbot.

  • /data/nginx/user_conf.d/: Каталог, содержащий пользовательские файлы конфигурации Nginx для панели.

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

  • /etc/letsencrypt: Точка монтирования для SSL-сертификатов, управляемых контейнером Docker.

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

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

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

    • Существующие службы баз данных (MySQL, MariaDB, Percona) и веб-серверы (Nginx, Apache) останавливаются и отключаются для предотвращения конфликтов портов.

    • Удаляются оставшиеся пакеты и каталоги данных, связанные с предыдущими установками баз данных.

    • Кэш apt очищается и обновляется.

  2. Установка пакетов:

    • Устанавливаются основные базовые пакеты, включая curl, wget, lsof, ca-certificates, gnupg, apt-transport-https и apt-utils.
  3. Загрузка и модификация установщика:

    • Скрипт установщика загружается с https://installer.cloudpanel.io/ce/v2/install.sh в /root/cloudpanel-install.sh.

    • Скрипт модифицируется для принудительного использования MySQL 8.0 (DB_ENGINE="MYSQL_8.0") вместо версии по умолчанию.

    • Команда обновления внутри скрипта изменяется для разрешения понижения версий пакетов (apt -y --allow-downgrades upgrade) для обеспечения разрешения зависимостей.

  4. Выполнение:

    • Установка выполняется путем запуска /root/cloudpanel-install.sh.

    • В процессе установки переменная DEBIAN_FRONTEND устанавливается в значение noninteractive, а TERM — в xterm для обеспечения бесконтактного выполнения.

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

Меры безопасности реализуются через управление портами и изоляцию служб.

  • Принудительное использование портов: Процесс установки проверяет, что порты 80, 443 и 3306 не используются. Если на этих портах обнаружены слушатели, установка завершается ошибкой для предотвращения конфликтов.

  • Изоляция служб: Конфликтующие службы, такие как mysql, mariadb, nginx и apache2, явно останавливаются и отключаются на этапе подготовки.

  • Доступ пользователя: Файлы установки и конфигурации принадлежат пользователю root.

Базы данных

CloudPanel использует внутреннюю базу данных для своей работы.

  • Движок базы данных: MySQL 8.0.

  • Метод подключения: Приложение подключается к базе данных локально.

  • Расположение хранения: Данные базы данных хранятся в стандартном каталоге данных MySQL, управляемом установкой CloudPanel (обычно /var/lib/mysql или эквивалент в контейнеризованной среде в зависимости от поведения конкретной версии установщика, хотя скрипт установщика ориентирован на нативную установку).

  • Конфигурация: Установщик автоматически настраивает движок базы данных в процессе развертывания.

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

Для управления SSL-сертификатами и работы в качестве обратного прокси-сервера для интерфейса CloudPanel развертывается контейнер Docker.

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

  • Метод развертывания: Docker Compose.

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

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

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

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

  • Томы (Volumes):

    • nginx_secrets: Внешний том, смонтированный в /etc/letsencrypt для хранения SSL-сертификатов.

    • /data/nginx/user_conf.d: Смонтирован в /etc/nginx/user_conf.d внутри контейнера для пользовательских конфигураций.

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

Развертывание включает обратный прокси-сервер Nginx, настроенный с Certbot для терминации SSL.

  • ПО прокси-сервера: Nginx (запускается внутри контейнера Docker).

  • Управление SSL: Certbot интегрирован в контейнер Nginx для обработки генерации и продления SSL-сертификатов.

  • Настройка электронной почты: Электронный адрес для сертификата установлен как hkadm@hostkey.com.

  • Путь конфигурации: Пользовательские конфигурации Nginx находятся в /data/nginx/user_conf.d/.

  • Блок Location: Конфигурация Nginx модифицируется для маршрутизации трафика из корневого расположения (location /) на приложение CloudPanel.

  • Переменные окружения: Загружаются из /data/nginx/nginx-certbot.env.

Настройки прав доступа

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

  • /root/nginx: Принадлежит root:root с правами 0644.

  • /root/nginx/compose.yml: Принадлежит root:root с правами 0644.

  • /root/cloudpanel-install.sh: Для скрипта установщика установлены права на выполнение (0755).

  • /data/nginx/user_conf.d: Смонтирован в контейнер Docker, права доступа управляются внутренними процессами контейнера.

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

Следующая таблица суммирует ключевые расположения конфигураций и данных:

Файл или каталог Путь Описание
Основное приложение /etc/cloudpanel Основной каталог установки CloudPanel.
Docker Compose /root/nginx/compose.yml Определение контейнера Nginx/Certbot.
Конфигурации Nginx /data/nginx/user_conf.d/ Пользовательские файлы конфигурации Nginx.
Переменные окружения Nginx /data/nginx/nginx-certbot.env Переменные окружения для контейнера прокси-сервера.
SSL-сертификаты /etc/letsencrypt Хранилище SSL-сертификатов (через том Docker).
Скрипт установщика /root/cloudpanel-install.sh Модифицированный скрипт установки.

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

Следующие порты используются развернутыми службами:

  • Порт 443: HTTPS-трафик для веб-интерфейса CloudPanel (внешний доступ).

  • Порт 80: HTTP-трафик для перенаправления SSL и задач Let's Encrypt.

  • Порт 3306: Подключение к базе данных MySQL (внутреннее использование).

  • Порт 8443: Порт внутренней связи (настроен в group_vars как internal_port).

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

Управление службами для компонентов осуществляется следующим образом:

  • Служба CloudPanel: Управляется менеджером служб системы (systemd) под именем cloudpanel (или аналогичным, в зависимости от финальной регистрации службы установщиком).

  • Служба прокси-сервера Nginx: Управляется через Docker Compose.

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

    • Остановка: docker compose down, выполняемый из каталога /root/nginx.

  • Системная служба Nginx: Нативная служба Nginx хоста запускается и включается через systemctl start nginx и systemctl enable nginx, если это требуется средой, хотя основной прокси-сервер работает в контейнере.

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