Обзор развертывания LEMP на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: права суперпользователя (
root) для установки системных пакетов и управления Docker. -
Сетевые настройки: доступ к интернету для загрузки образов контейнеров.
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | lamp |
| Домен | hostkey.in |
| Полный шаблон | lamp{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В системе создаются следующие директории для хранения данных и веб-контента:
-
/root/data— хранилище баз данных MySQL. -
/root/webroot— корневая директория веб-сервера (исходные файлы сайта). -
/data/nginx/user_conf.d— пользовательские конфигурации Nginx. -
/data/nginx/nginx-certbot.env— файл переменных окружения для управления SSL-сертификатами.
Процесс установки приложения¶
Процесс развертывания включает в себя следующие этапы:
-
Установка среды Docker в операционную систему.
-
Создание необходимых директорий для данных и веб-контента с правами доступа
0755. -
Загрузка образа LEMP версии
8.3из реестра Docker Hub. -
Создание изолированной сети Docker под названием
lemp-net. -
Развертывание основного контейнера приложения со всеми необходимыми настройками.
Контейнеры Docker и их запуск¶
Приложение функционирует в среде Docker с использованием следующих компонентов:
Основной стек LEMP¶
Контейнер обеспечивает работу веб-сервера, PHP и баз данных (MySQL).
-
Имя образа:
adhocore/lemp:8.3 -
Имя контейнера:
lemp-stack -
Порты:
-
88:80(HTTP) -
3306:3306(MySQL) -
5432:5432(PostgreSQL) -
Тома (volumes):
-
/root/data:/var/lib/mysql— база данных. -
/root/webroot:/var/www/html— веб-файлы. -
Переменные окружения:
MYSQL_ROOT_PASSWORD(устанавливается автоматически). -
Политика перезапуска:
always.
Прокси-сервер и SSL¶
Для обеспечения работы HTTPS используется вспомогательный контейнер для управления сертификатами через Certbot.
-
Имя образа:
jonasal/nginx-certbot:latest -
Режим сети:
host(использует сетевой стек хоста). -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt— хранилище SSL-сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— пользовательские конфигурации Nginx. -
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com.
Инструкция по обновлению приложения¶
Для обновления основного приложения необходимо выполнить следующие действия:
-
Загрузить актуальные образы:
-
Перезапустить контейнер для применения изменений:
(Примечание: если используется прямой запуск через docker run, необходимо остановить и удалить старый контейнер перед запуском нового).
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь на хосте | Путь в контейнере |
|---|---|---|
| Базы данных MySQL | /root/data | /var/lib/mysql |
| Веб-контент | /root/webroot | /var/www/html |
| Конфигурации Nginx | /data/nginx/user_conf.d | /etc/nginx/user_conf.d |
Доступные порты для подключения¶
Для взаимодействия с приложением и базами данных открыты следующие порты:
-
88— доступ к веб-интерфейсу (HTTP). -
443— защищенное соединение (HTTPS). -
3306— подключение к базе данных MySQL. -
5432— подключение к базе данных PostgreSQL.
Запуск, остановка приложения¶
Управление основным контейнером осуществляется следующими командами:
-
Запуск:
docker start lemp-stack -
Остановка:
docker stop lemp-stack -
Просмотр статуса:
docker ps -a | grep lemp-stack