LEMP¶
В этой статье
Информация
LEMP — это стек технологий для веб-разработки с открытым исходным кодом, включающий операционную систему Linux, веб-сервер NGINX (произносится как "engine-x"), базу данных MySQL и интерпретатор языка PHP.
- Linux обеспечивает хостинг и управление сервером.
- NGINX работает как высокопроизводительный веб-сервер и прокси-сервер.
- MySQL — это реляционная база данных для хранения и обработки данных.
- PHP — это язык программирования для создания динамических веб-приложений.
LEMP. Основные возможности¶
- Контейнеризированное решение: стек LEMP доступен как в классическом развертывании, так и в контейнеризированном виде. Docker-контейнер обеспечивает изоляцию компонентов и их зависимостей, создавая идентичное окружение для разработки и продакшена.
- Высокая производительность: событийно-ориентированная архитектура NGINX позволяет эффективно обрабатывать тысячи параллельных соединений. Оптимизированная работа с PHP через FastCGI обеспечивает быструю обработку динамического контента, а продвинутое кэширование статических файлов снижает нагрузку на сервер.
- Гибкая конфигурация: LEMP предоставляет возможность настройки каждого компонента. NGINX поддерживает сложные схемы маршрутизации, балансировку нагрузки и кэширование. MySQL позволяет тонко настраивать параметры производительности и безопасности. PHP конфигурируется под конкретные нужды приложения с возможностью включения необходимых расширений и оптимизации использования памяти.
- Многофункциональность: PHP 8.3 поставляется с набором функций для современной веб-разработки. Поддерживается работа с различными форматами данных, шифрованием, сетевыми протоколами. MySQL обеспечивает надежное хранение данных с поддержкой транзакций, сложных запросов и репликации. NGINX предоставляет продвинутые возможности для маршрутизации запросов, терминации SSL и обработки медиа-контента.
- Безопасность: LEMP включает многоуровневую систему безопасности. NGINX обеспечивает защиту от DDoS-атак и других веб-угроз. MySQL предоставляет гибкое управление правами пользователей и шифрование данных. PHP настроен с учетом современных требований безопасности. Дополнительный уровень изоляции обеспечивается контейнеризацией, что предотвращает влияние уязвимостей одного компонента на другие.
- Масштабируемость: архитектура LEMP позволяет эффективно масштабировать приложения. NGINX поддерживает распределение нагрузки между несколькими серверами. MySQL обеспечивает репликацию данных и шардирование для больших объемов информации. PHP-FPM позволяет точно контролировать количество рабочих процессов. Контейнеризация упрощает развертывание дополнительных экземпляров приложения при росте нагрузки.
- Простота обновления: обновление компонентов LEMP может производиться независимо друг от друга. NGINX и PHP поддерживают обновление без прерывания работы сервиса. MySQL предоставляет инструменты для безопасного обновления базы данных. При использовании контейнеров возможно тестирование обновлений в изолированной среде перед применением в продакшене.
Особенности сборки¶
ID | Совместимые ОС | VPS | BM | VGPU | GPU | Мин. ЦПУ (Ядер) | Мин. ОЗУ (Гб) | Мин. HDD/SDD (Гб) | Доступно |
---|---|---|---|---|---|---|---|---|---|
21 | Ubuntu 22.04 | + | + | + | + | 1 | 1 | - | Да |
Сборка разворачивается в Docker-контейнере с использованием образа adhocore/lemp:8.3. Для хранения данных используются следующие директории:
/root/data
для файлов базы данных;/root/webroot
для файлов веб-сайта.
Примечание
Для работы с MySQL необходимо подключаться через Docker-контейнер, так как клиент MySQL не установлен на хост-системе. Используйте команду:
Примечание
Если не указано иное, по умолчанию мы устанавливаем последнюю релиз версию программного обеспечения с сайта разработчика или репозиториев операционной системы.
Начало работы после развертывания LEMP¶
После оплаты заказа на указанную при регистрации электронную почту придет уведомление о готовности сервера к работе. В нем будет указан IP-адрес VPS, а также логин и пароль для подключения. Управление оборудованием клиенты нашей компании осуществляют в панели управления серверами и API — Invapi.
-
Логин и Пароль для подключения к серверу по SSH: приходят в письме на вашу электронную почту при готовности сервера к работе после развертывания ПО. Пароль для подключения к базе данных совпадает с паролем для подключения к серверу по SSH.
-
NGINX:
- Веб-сервер доступен на порту 88
- Веб-содержимое размещается в директории
/root/webroot
. Для размещения сайта скопируйте файлы в эту директорию. - Для проверки работы сервера создайте тестовый файл:
- Доступ:
http://<ваш_IP_сервера>:88/test.html
-
MySQL:
- База данных доступна на порту 3306
- Данные хранятся в
/root/data
- Пароль root совпадает с паролем SSH-доступа к серверу
- Для подключения используйте:
-
PHP 8.3:
- Установлен в контейнере со всеми необходимыми расширениями
- Работает через FastCGI для повышенной производительности
- Для проверки работы PHP создайте файл info.php в директории
/root/webroot
:
-
Порты:
- 88: Web (NGINX)
- 3306: MySQL
- 5432: PostgreSQL
Примечание
Все команды для работы с базой данных необходимо выполнять через Docker-контейнер с помощью команды docker exec
. Контейнер работает в выделенной сети lemp-net для улучшенной изоляции и безопасности.
Примечание
Подробная информация по работе с базой данных содержится в документации разработчиков.
Заказ сервера с LEMP с помощью API¶
Для установки данного ПО с использованием API следуйте этой инструкции.