Обзор развертывания LAMP на сервере¶
Предварительные требования¶
Для успешного развертывания системы должны быть соблюдены следующие условия:
-
Операционная система: Ubuntu или Debian.
-
Права доступа: Пользователь с правами
root. -
Порты:
-
Порт
80(HTTP) и порт443(HTTPS) резервируются для работы Docker-контейнера Certbot/Nginx. -
Apache перенаправляется на внутренний порт
8080.
-
FDQN итоговой панели на домене hostkey.in¶
Шаблон домена формируется следующим образом:
| Параметр | Значение |
|---|---|
| Префикс | lamp |
| Домен | hostkey.in |
| Полный шаблон | lamp{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
Основные директории, используемые в системе:
-
/root/nginx— рабочая директория для Docker Compose. -
/data/nginx/user_conf.d— директория с пользовательскими конфигурациями Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для контейнера.
Процесс установки приложения¶
Развертывание включает в себя установку классического стека LAMP (Linux, Apache, MariaDB, PHP) и настройку проксирования через Docker:
-
Установка системных пакетов
Apache,MariaDBиPHP. -
Настройка Apache для работы на внутреннем порту
8080с поддержкой заголовковX-Forwarded-Proto. -
Развертывание контейнера Nginx + Certbot через Docker Compose для обеспечения SSL-сертификатов.
Права доступа и безопасность¶
-
Брандмауэр: Порты
80и443должны быть открыты для внешнего трафика. -
Пользователи: Все основные процессы выполняются от имени
root. -
Ограничения: Apache настроен на прослушивание только локального интерфейса (
127.0.0.1) на порту8080, чтобы избежать конфликтов с Nginx.
Базы данных¶
В качестве системы управления базами данных используется MariaDB.
-
Версия: 10.11.
-
Хранение: Данные хранятся в стандартных директориях MariaDB (зависит от ОС).
-
Настройки: Учетная запись
rootиспользует пароль, переданный через системную переменную окружения.
Контейнеры Docker и их запуск¶
В системе развернут один основной контейнер для управления SSL и проксированием:
Контейнер Nginx Certbot
-
Имя образа:
jonasal/nginx-certbot:latest -
Порты: Использует режим сети
host(прослушивает порты хоста напрямую). -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— хранение сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— пользовательские конфигурации.
-
-
Переменные окружения:
CERTBOT_EMAIL:hkadm@hostkey.com(или значение из настроек).
-
Политика перезапуска:
unless-stopped.
Инструкция по обновлению приложения¶
Обновление выполняется через pull и перезапуск контейнеров:
Настройки прав¶
Для директорий используются следующие права:
-
/root/nginx: владелецroot, группаroot, режим0755. -
Конфигурационные файлы в
/data/nginx/user_conf.d/: владелецroot, группаroot, режим0644.
Расположение конфигурационных файлов и данных¶
-
Конфигурация Docker Compose:
/root/nginx/compose.yml -
Пользовательские конфиги Nginx:
/data/nginx/user_conf.d/{prefix}{server_id}.{zone}.conf -
Файл проверки PHP:
/var/www/html/info.php
Доступные порты для подключения¶
| Порт | Протокол | Назначение |
|---|---|---|
80 | HTTP | Перенаправление через Nginx (Certbot) |
443 | HTTPS | Основной доступ к приложению через SSL |
8080 | HTTP | Внутренний трафик Apache |
Запуск, остановка приложения¶
Управление контейнером прокси-сервера:
Запуск:
Остановка:
Перезагрузка конфигурации Nginx без остановки контейнера: