Обзор развертывания OpenLiteSpeed NodeJS на сервере¶
Предварительные требования¶
Для корректной работы приложения сервер должен соответствовать следующим требованиям:
-
Операционная система: Ubuntu (рекомендуется).
-
Права доступа: Права суперпользователя (
root) для установки системных пакетов и настройки Docker. -
Доменное имя: Наличие домена, направленного на IP сервера.
-
Порты:
-
80(HTTP) — для проверки SSL и перенаправления; -
443(HTTPS) — основной порт доступа к приложению; -
7080(внутренний) — для взаимодействия OpenLiteSpeed с прокси.
FDQN итоговой панели на домене hostkey.in¶
Для обеспечения работы SSL-сертификатов используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | openlitespeed-nodejs |
| Домен | hostkey.in |
| Полный шаблон | openlitespeed-nodejs{Server_ID}.hostkey.in |
Процесс установки приложения¶
Развертывание представляет собой комбинированный метод, включающий установку системных пакетов и контейнеризацию прокси-сервера:
-
Установка базовых компонентов:
-
Устанавливаются инструменты
curl,wgetиgnupg. -
Настройка OpenLiteSpeed:
-
Добавляется официальный репозиторий LiteSpeed.
-
Устанавливается пакет
openlitespeed. -
Запускается и активируется сервис
lsws. -
Установка среды выполнения Node.js:
-
Подключается репозиторий NodeSource для версии 20.x.
-
Устанавливается пакет
nodejs. -
Настройка Docker и SSL:
-
Устанавливается среда Docker (engine, cli, containerd, compose plugin).
-
Настраиваются зеркала реестров в
/etc/docker/daemon.jsonдля ускорения загрузки образов. -
Развертывается контейнер Nginx с поддержкой автоматического получения и обновления SSL-сертификатов через Certbot.
Контейнеры Docker и их запуск¶
Для обеспечения работы веб-сервера и управления сертификатами используется следующий контейнер:
| Параметр | Значение |
|---|---|
| Имя образа | jonasal/nginx-certbot:latest |
| Режим сети | host |
| Политика перезапуска | unless-stopped |
| Переменные окружения | CERTBOT_EMAIL=hkadm@hostkey.com, RENEWAL_INTERVAL=8d |
Тома (Volumes):
-
nginx_secrets:/etc/letsencrypt— хранение SSL-сертификатов. -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d— конфигурационные файлы виртуальных хостов. -
/data/nginx/letsencrypt:/var/www/letsencrypt— директория для проверки Certbot (acme-challenge).
Кастомные скрипты и дополнительные настройки¶
В процессе развертывания выполняются следующие действия:
-
Настройка учетных данных WebAdmin: Выполняется скрипт
/usr/local/lsws/admin/misc/admpass.shдля установки логинаadminи заданного пароля для панели управления OpenLiteSpeed. -
Конфигурация Nginx: Создается конфигурационный файл, который проксирует трафик с порта 443 на внутренний порт приложения
7080, обеспечивая поддержку WebSocket (через заголовкиUpgradeиConnection). -
Валидация SSL: После запуска контейнера выполняется проверка корректности конфигурации Nginx (
nginx -t) и тестовое обновление сертификатов Certbot.
Расположение конфигурационных файлов и данных¶
| Тип данных | Путь к файлу / директории |
|---|---|
| Конфигурация Docker | /etc/docker/daemon.json |
| Конфигурация Nginx (Compose) | /root/nginx/compose.yml |
| Конфигурации виртуальных хостов | /data/nginx/user_conf.d/ |
| Данные SSL (Certbot) | /data/nginx/letsencrypt/ |
| Секреты сертификатов в Docker | nginx_secrets (external volume) |
Доступные порты для подключения¶
-
443 — HTTPS доступ к приложению.
-
80 — HTTP (автоматический редирект на 443).
-
7080 — Внутренний порт OpenLiteSpeed (используется внутри сервера).