Обзор развертывания OpenLiteSpeed Node.js на сервере¶
Предварительные требования и базовые условия¶
Перед началом или в процессе развертывания на сервере должны быть выполнены следующие требования:
-
Операционная система: Ubuntu (на базе Debian)
-
Привилегии: Для всех шагов установки и конфигурации требуется доступ уровня root
-
Доменная зона:
hostkey.in -
Необходимые порты:
-
Внутренний порт:
7080(OpenLiteSpeed WebAdmin) -
Внешний порт:
443(HTTPS через прокси Nginx) -
Требуемые пакеты:
-
curl,wget,gnupg -
docker-ce,docker-ce-cli,containerd.io,docker-buildx-plugin,docker-compose-plugin -
openlitespeed -
nodejs(Node.js 20.x) -
python3-pexpect(требуется для административных задач)
FQDN конечной панели управления¶
Конечная административная панель доступна по следующему формату FQDN:
openlitespeed-nodejs<Server ID>.hostkey.in:443
Замените <Server ID> на фактический идентификатор, назначенный экземпляру сервера.
Структура файлов и директорий¶
Для конфигураций, данных и сертификатов развертывание использует следующие директории:
-
Проектная директория Nginx:
/root/nginx -
Конфигурация пользователя Nginx:
/data/nginx/user_conf.d -
Данные Docker:
-
/var/lib/docker -
/var/lib/containerd -
Установка OpenLiteSpeed:
/usr/local/lsws -
SSL-сертификаты:
/etc/letsencrypt/live -
Конфигурация демона Docker:
/etc/docker/daemon.json -
Том с секретами Docker (Docker Secrets Volume):
nginx_secrets(отображается на/etc/letsencrypt)
Процесс установки приложения¶
Стек приложения включает OpenLiteSpeed, Node.js и обратный прокси-сервер Nginx с Certbot. Установка включает следующие шаги:
-
Установка OpenLiteSpeed:
-
Добавьте репозиторий LiteSpeed с помощью официального скрипта установки.
-
Установите пакет
openlitespeed. -
Убедитесь, что служба
lswsзапущена и включена (enabled). -
Настройте учетные данные для WebAdmin (Имя пользователя:
admin, Пароль: определяется переменной).
-
-
Установка Node.js:
-
Добавьте репозиторий NodeSource для Node.js 20.x.
-
Установите пакет
nodejs. -
Проверьте установку, проверив версию.
-
-
Установка Docker:
-
Установите необходимые пакеты (
ca-certificates,curl,gnupg,lsb-release). -
Добавьте GPG-ключ Docker и репозиторий.
-
Установите компоненты Docker Engine (
docker-ce,docker-ce-cli,containerd.io,docker-buildx-plugin,docker-compose-plugin). -
Запустите и включите службы
containerdиdocker.
-
-
Развертывание прокси-сервера Nginx:
-
Создайте проектную директорию Nginx по пути
/root/nginx. -
Сгенерируйте файл конфигурации Docker Compose.
-
Разверните стек
nginx-certbotс помощью Docker Compose.
-
Контейнеры Docker и их развертывание¶
Для запуска служб Nginx и Certbot используется стек Docker Compose.
Зеркала реестра Docker (Docker Registry Mirrors): Демон Docker настроен на использование следующего зеркала:
http://dockerhub.hostkey.ru
Конфигурация Docker Compose: Стек определен в файле /root/nginx/compose.yml и включает:
-
Служба:
nginx -
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Переменные окружения:
-
CERTBOT_EMAIL:hkadm@hostkey.com -
Тома (Volumes):
-
nginx_secrets, смонтированный в/etc/letsencrypt -
Путь хоста
/data/nginx/user_conf.d, смонтированный в/etc/nginx/user_conf.d
Команда развертывания: Стек запускается следующей командой из проектной директории:
Контекст выполнения:Прокси-серверы¶
Для обработки входящего трафика и управления SSL-сертификатами для интерфейса OpenLiteSpeed WebAdmin развернут обратный прокси-сервер Nginx.
Детали конфигурации:
-
ПО: Nginx с Certbot (через образ
jonasal/nginx-certbot) -
Имя сервера:
<prefix><Server ID>.hostkey.in(например,openlitespeed-nodejs123.hostkey.in) -
Порты прослушивания:
-
443(SSL/TLS) -
[::]:443(IPv6 SSL/TLS) -
SSL-сертификаты:
-
Полный набор (Full Chain):
/etc/letsencrypt/live/<prefix><Server ID>.hostkey.in/fullchain.pem -
Приватный ключ (Private Key):
/etc/letsencrypt/live/<prefix><Server ID>.hostkey.in/privkey.pem -
Доверенный сертификат (Trusted Certificate):
/etc/letsencrypt/live/<prefix><Server ID>.hostkey.in/chain.pem -
DH-параметры:
/etc/letsencrypt/dhparams/dhparam.pem
Настройки прокси: Сервер Nginx блокирует весь трафик на порту 443 для внутреннего экземпляра OpenLiteSpeed:
-
Цель проксирования (Proxy Target):
https://127.0.0.1:7080 -
Проверка SSL: Отключена (
proxy_ssl_verify off) -
Сохраняемые заголовки (Headers Preserved):
-
Host,X-Forwarded-Host,X-Forwarded-Server,X-Real-IP,X-Forwarded-For,X-Forwarded-Proto -
WebSockets: Поддерживаются через маппинг заголовков
UpgradeиConnection. -
Буферизация: Отключена (
proxy_buffering off).
Настройки прав доступа¶
Во время развертывания выполняются следующие права доступа к файлам и директориям:
-
Проектная директория Nginx (
/root/nginx): -
Владелец:
root:root -
Режим:
0755 -
Файл Docker Compose (
/root/nginx/compose.yml): -
Владелец:
root:root -
Режим:
0644 -
Конфигурация Vhost Nginx (
/data/nginx/user_conf.d/<prefix><server_id>.hostkey.in.conf): -
Владелец:
root:root -
Режим:
0644 -
Конфигурация демона Docker (
/etc/docker/daemon.json): -
Владелец:
root:root -
Режим:
0644
Расположение файлов конфигурации и данных¶
Ключевые файлы конфигурации и данные находятся в следующих расположениях:
-
Определение Docker Compose:
/root/nginx/compose.yml -
Конфигурация Vhost Nginx:
/data/nginx/user_conf.d/openlitespeed-nodejs<Server ID>.hostkey.in.conf -
Файл окружения Nginx:
/data/nginx/nginx-certbot.env -
Конфигурация демона Docker:
/etc/docker/daemon.json -
Скрипт пароля администратора OpenLiteSpeed:
/usr/local/lsws/admin/misc/admpass.sh -
Данные SSL-сертификатов:
/etc/letsencrypt/live/openlitespeed-nodejs<Server ID>.hostkey.in/
Доступные порты для подключения¶
Система открывает следующие порты для внешнего и внутреннего взаимодействия:
-
Порт 443: Внешний доступ к обратному прокси-серверу Nginx (HTTPS).
-
Порт 7080: Внутренний доступ к интерфейсу OpenLiteSpeed WebAdmin (только localhost).
Запуск, остановка и обновление¶
Управление службами:
-
Службы Docker:
-
Запуск:
systemctl start dockerиsystemctl start containerd -
Остановка:
systemctl stop dockerиsystemctl stop containerd -
Включение при загрузке:
systemctl enable dockerиsystemctl enable containerd -
Служба OpenLiteSpeed:
-
Имя службы:
lsws -
Запуск:
systemctl start lsws -
Остановка:
systemctl stop lsws -
Включение при загрузке:
systemctl enable lsws
Операции Docker Compose:
-
Для запуска стека Nginx/Certbot:
-
Для остановки стека:
-
Для обновления стека (получить последние образы и перезапустить):