Обзор развертывания OpenLiteSpeed Node.js на сервере¶
Предварительные требования и базовые условия¶
Для развертывания требуется Linux-сервер с дистрибутивом на базе Debian (например, Ubuntu) со следующими характеристиками:
-
Операционная система: Debian или Ubuntu.
-
Привилегии: Для установки пакетов, настройки Docker и управления службами требуются права root или привилегии
sudo. -
Домен: Для настройки FQDN требуется действительное доменное имя.
-
Порты:
-
Порт
443(HTTPS) для внешнего доступа через прокси Nginx. -
Порт
7080для внутреннего интерфейса OpenLiteSpeed WebAdmin. -
Зависимости программного обеспечения:
-
Docker Engine и плагин Docker Compose.
-
Веб-сервер OpenLiteSpeed.
-
Node.js версии 20.x.
FQDN конечной панели¶
Приложение доступно по следующему формату полностью квалифицированного доменного имени (FQDN):
-
Формат:
openlitespeed-nodejs<Server ID>.hostkey.in:443 -
Пример: Если Server ID равен
123, адрес будетopenlitespeed-nodejs123.hostkey.in.
Система автоматически разворачивает SSL-сертификаты для этого домена с помощью Certbot.
Структура файлов и каталогов¶
Развертывание использует следующую структуру каталогов для файлов конфигурации, хранения данных и сертификатов:
-
Конфигурация Docker:
/etc/docker/daemon.json -
Хранилище данных Docker:
-
/var/lib/docker -
/var/lib/containerd -
Каталог проекта Nginx:
/root/nginx -
Конфигурация пользователя Nginx:
/data/nginx/user_conf.d -
SSL-сертификаты:
/etc/letsencrypt/live/openlitespeed-nodejs<Server ID>.hostkey.in -
Установка OpenLiteSpeed:
/usr/local/lsws
Процесс установки приложения¶
Установка включает настройку базовых пакетов операционной системы, Docker и конкретного стека приложений.
-
Установка системных предварительных требований: Система устанавливает основные пакеты, включая
curl,wget,gnupg,ca-certificatesиlsb-release. -
Установка OpenLiteSpeed:
-
В систему добавляется репозиторий LiteSpeed.
-
Устанавливается пакет
openlitespeed. -
Служба
lswsзапускается и включается для автоматического запуска при загрузке. -
Пароль WebAdmin настраивается с помощью скрипта
admpass.shс именем пользователяadmin.
-
-
Установка Node.js:
-
Добавляется репозиторий NodeSource для Node.js 20.x.
-
Устанавливается пакет
nodejs.
-
-
Установка Docker:
-
Добавляются официальный GPG-ключ Docker и репозиторий.
-
Устанавливаются следующие пакеты Docker:
-
docker-ce -
docker-ce-cli -
containerd.io -
docker-buildx-plugin -
docker-compose-plugin -
Службы
containerdиdockerзапускаются и включаются.
-
-
Развертывание Nginx и Certbot:
-
Развертывается стек Docker Compose для обработки SSL-терминации и обратного проксирования.
-
Стек включает образ
jonasal/nginx-certbot.
-
Права доступа и безопасность¶
Безопасность обеспечивается следующими механизмами:
-
Межсетевой экран (Firewall): Прокси Nginx слушает порт
443(HTTPS) для внешнего трафика. Внутренняя связь осуществляется через порт7080на интерфейсе localhost (127.0.0.1). -
SSL/TLS: Безопасные соединения обеспечиваются с использованием сертификатов Let's Encrypt, управляемых контейнером Certbot.
-
Учетные данные пользователя:
-
OpenLiteSpeed WebAdmin:
-
Имя пользователя:
admin -
Пароль: Настраивается во время установки (переменная
password_litespeed_web).
-
-
Безопасность прокси:
-
В конфигурации Nginx отключена проверка SSL для подключения к вышестоящему серверу (
proxy_ssl_verify off), чтобы разрешить связь с внутренним экземпляром OpenLiteSpeed. -
Заголовки
X-Forwarded-For,X-Real-IPиX-Forwarded-Protoпередаются для сохранения информации о клиенте.
Контейнеры Docker и их развертывание¶
Для управления службами Nginx и Certbot используется Docker Compose.
-
Расположение файла Compose:
/root/nginx/compose.yml -
Образ контейнера:
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
Демон Docker настроен со следующими параметрами в файле /etc/docker/daemon.json:
| Параметр | Значение |
|---|---|
registry-mirrors | http://dockerhub.hostkey.ru |
storage-driver | overlay2 (по умолчанию) или vfs (если проверка размера не пройдена) |
Прокси-серверы¶
Nginx выступает в роли обратного прокси и SSL-терминатора для интерфейса OpenLiteSpeed WebAdmin.
-
Прокси-сервер: Nginx (запускается внутри контейнера Docker).
-
Провайдер SSL: Certbot (интегрирован в контейнер Nginx).
-
Пользовательский домен: Система настроена для зоны
hostkey.inс префиксомopenlitespeed-nodejs. -
Детали конфигурации:
-
Порты прослушивания:
443(IPv4 и IPv6) с SSL. -
Имя сервера:
openlitespeed-nodejs<Server ID>.hostkey.in. -
Целевой вышестоящий сервер (Upstream):
https://127.0.0.1:7080. -
Конфигурация SSL:
-
Сертификат:
/etc/letsencrypt/live/<FQDN>/fullchain.pem -
Ключ:
/etc/letsencrypt/live/<FQDN>/privkey.pem -
Цепочка:
/etc/letsencrypt/live/<FQDN>/chain.pem -
Параметры DH:
/etc/letsencrypt/dhparams/dhparam.pem
-
Настройки прав доступа¶
К следующим критическим каталогам и файлам применяются следующие права доступа:
-
Каталог проекта Nginx (
/root/nginx): -
Владелец:
root -
Группа:
root -
Режим:
0755 -
Файл Docker Compose (
/root/nginx/compose.yml): -
Владелец:
root -
Группа:
root -
Режим:
0644 -
Конфигурация виртуального хоста Nginx (
/data/nginx/user_conf.d/<FQDN>.conf): -
Владелец:
root -
Группа:
root -
Режим:
0644 -
Конфигурация демона Docker (
/etc/docker/daemon.json): -
Владелец:
root -
Группа:
root -
Режим:
0644
Расположение файлов конфигурации и данных¶
Основные файлы конфигурации и места хранения данных расположены следующим образом:
-
Конфигурация демона Docker:
/etc/docker/daemon.json -
Определение Docker Compose:
/root/nginx/compose.yml -
Конфигурация виртуального хоста Nginx:
/data/nginx/user_conf.d/openlitespeed-nodejs<Server ID>.hostkey.in.conf -
Файл окружения Nginx:
/data/nginx/nginx-certbot.env -
Конфигурация OpenLiteSpeed:
/usr/local/lsws/conf(стандартный путь установки) -
SSL-сертификаты:
/etc/letsencrypt/live/openlitespeed-nodejs<Server ID>.hostkey.in
Доступные порты для подключения¶
Развернутое приложение использует следующие порты:
| Порт | Протокол | Описание |
|---|---|---|
443 | TCP | Внешний доступ HTTPS через прокси Nginx. |
7080 | TCP | Внутренний интерфейс OpenLiteSpeed WebAdmin (только localhost). |
Запуск, остановка и обновление¶
Управление службами осуществляется через systemctl для системных служб и docker compose для контейнеризированных компонентов.
-
Управление службами Docker:
-
Запуск Docker:
systemctl start docker -
Остановка Docker:
systemctl stop docker -
Включение Docker при загрузке:
systemctl enable docker -
Запуск Containerd:
systemctl start containerd -
Остановка Containerd:
systemctl stop containerd -
Управление службой OpenLiteSpeed:
-
Запуск:
systemctl start lsws -
Остановка:
systemctl stop lsws -
Перезапуск:
systemctl restart lsws -
Включение:
systemctl enable lsws -
Управление стеком Nginx/Certbot:
-
Запуск/Обновление:
docker compose up -d(выполняется из/root/nginx) -
Остановка:
docker compose down(выполняется из/root/nginx) -
Просмотр логов:
docker compose logs -f(выполняется из/root/nginx)