Обзор развертывания OpenLiteSpeed Node.js на сервере¶
Предварительные требования и базовые условия¶
Для развертывания OpenLiteSpeed с поддержкой Node.js требуется Linux-сервер, работающий на базе дистрибутива Debian (например, Ubuntu). Перед началом установки необходимо выполнить следующие предварительные требования:
-
Операционная система: Debian или Ubuntu.
-
Права доступа: Для установки системных пакетов, управления службами и настройки Docker требуется доступ root или пользователь с правами
sudo. -
Домен: Для выдачи SSL-сертификатов через Certbot требуется действительное доменное имя. Система настроена на использование зоны
hostkey.in. -
Порты:
-
Порт
80(HTTP) для первоначального доступа и проверки вызова Let's Encrypt. -
Порт
443(HTTPS) для безопасного доступа к обратному прокси-серверу Nginx. -
Порт
7080(Внутренний) для интерфейса OpenLiteSpeed WebAdmin.
FQDN конечной панели¶
Панель управления приложением доступна по полному доменному имени (FQDN), сформированному с использованием идентификатора сервера. Формат следующий:
openlitespeed-nodejs<Server ID>.hostkey.in:443
Замените <Server ID> на фактический идентификатор, назначенный вашему экземпляру сервера.
Структура файлов и каталогов¶
Для развертывания используются определенные каталоги для файлов конфигурации, хранения данных и сертификатов. Структура организована следующим образом:
-
Конфигурация Nginx:
-
/root/nginx: Содержит файл Docker Compose (compose.yml) для стека Nginx и Certbot. -
/data/nginx/user_conf.d: Хранит индивидуальные конфигурации виртуальных хостов Nginx. -
/data/nginx/letsencrypt/.well-known/acme-challenge: Каталог для проверки HTTP-вызова Let's Encrypt. -
/data/nginx/nginx-certbot.env: Переменные окружения для контейнера Nginx/Certbot, включая интервалы обновления. -
Конфигурация OpenLiteSpeed:
-
/usr/local/lsws: Каталог установки по умолчанию для бинарных файлов и конфигураций OpenLiteSpeed. -
/usr/local/lsws/admin/misc/admpass.sh: Скрипт, используемый для установки учетных данных WebAdmin. -
Конфигурация Docker:
-
/etc/docker/daemon.json: Файл конфигурации демона Docker, включая зеркала реестра и драйверы хранения. -
/var/lib/docker: Каталог данных Docker по умолчанию. -
/var/lib/containerd: Каталог данных Containerd. -
SSL-сертификаты:
-
/etc/letsencrypt: Управляется томами Docker (nginx_secrets), содержит выданные SSL-сертификаты.
Процесс установки приложения¶
Процесс установки включает настройку OpenLiteSpeed, Node.js и обратного прокси-сервера Nginx на базе Docker с интеграцией Certbot.
-
Установка предварительных требований:
-
Установите
curl,wget,gnupg,ca-certificates,lsb-releaseиpython3-pexpect. -
Установка OpenLiteSpeed:
-
Добавьте репозиторий LiteSpeed, используя официальный скрипт настройки.
-
Установите пакет
openlitespeed. -
Запустите и включите службу
lsws. -
Установка Node.js:
-
Добавьте репозиторий NodeSource для Node.js 20.x.
-
Установите пакет
nodejs. -
Настройка OpenLiteSpeed WebAdmin:
-
Установите имя пользователя WebAdmin как
admin. -
Установите пароль, используя переменную
password_litespeed_web. -
Установка Docker:
-
Добавьте GPG-ключ Docker и репозиторий.
-
Установите
docker-ce,docker-ce-cli,containerd.io,docker-buildx-pluginиdocker-compose-plugin. -
Убедитесь, что службы
containerdиdockerзапущены и включены. -
Развертывание Nginx и Certbot:
-
Создайте необходимые каталоги для конфигурации Nginx и вызовов Let's Encrypt.
-
Сгенерируйте файл Docker Compose в
/root/nginx/compose.yml. -
Разверните конфигурацию виртуального хоста Nginx для OpenLiteSpeed WebAdmin.
-
Запустите стек Nginx и Certbot с помощью
docker compose up -d.
Права доступа и безопасность¶
Меры безопасности реализуются через правила межсетевого экрана, права пользователей и SSL-шифрование.
-
Межсетевой экран: Убедитесь, что порты
80и443открыты для внешнего доступа. Порт7080доступен внутренне через прокси Nginx. -
SSL-шифрование: Весь внешний трафик перенаправляется с HTTP (порт 80) на HTTPS (порт 443). SSL-сертификаты управляются автоматически через Certbot.
-
Доступ к WebAdmin: Интерфейс OpenLiteSpeed WebAdmin защищен именем пользователя и паролем. Доступ осуществляется через прокси Nginx, что гарантирует, что прямой доступ к порту
7080не доступен извне.
Базы данных¶
Это развертывание не включает компонент базы данных. Стек приложения состоит из OpenLiteSpeed, Node.js и Nginx. Если требуется база данных, ее необходимо установить и настроить отдельно.
Контейнеры Docker и их развертывание¶
Обратный прокси-сервер Nginx и Certbot развертываются с помощью Docker Compose. Конфигурация определена в /root/nginx/compose.yml.
-
Образ:
jonasal/nginx-certbot:latest -
Политика перезапуска:
unless-stopped -
Режим сети:
host -
Тома:
-
nginx_secrets: Внешний том для сертификатов Let's Encrypt. -
/data/nginx/user_conf.d: Подключен к/etc/nginx/user_conf.dдля конфигураций виртуальных хостов. -
/data/nginx/letsencrypt: Подключен к/var/www/letsencryptдля вызовов ACME.
Для управления стеком Docker используйте следующие команды:
Прокси-серверы¶
Nginx действует как обратный прокси для интерфейса OpenLiteSpeed WebAdmin. Конфигурация хранится в /data/nginx/user_conf.d/openlitespeed-nodejs<Server ID>.hostkey.in.conf.
-
Перенаправление HTTP на HTTPS: Весь HTTP-трафик на порту 80 перенаправляется на HTTPS на порту 443.
-
Конфигурация 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 -
Настройки прокси:
-
Бэкенд:
https://127.0.0.1:7080 -
Проверка SSL: Отключена (
proxy_ssl_verify off) -
Заголовки:
Host,X-Forwarded-Host,X-Forwarded-Server,X-Real-IP,X-Forwarded-For,X-Forwarded-Proto,X-Forwarded-Portпередаются на бэкенд. -
Поддержка WebSocket: Включена через заголовки
UpgradeиConnection.
Настройки разрешений¶
Разрешения на файлы и каталоги установлены для обеспечения безопасного доступа и правильной функциональности.
-
Каталоги Nginx:
-
/root/nginx: Владелецroot:rootс режимом0755. -
/data/nginx/letsencrypt/.well-known/acme-challenge: Владелецroot:rootс режимом0755. -
/data/nginx/nginx-certbot.env: Владелецroot:rootс режимом0644. -
Файлы конфигурации:
-
/root/nginx/compose.yml: Владелецroot:rootс режимом0644. -
/data/nginx/user_conf.d/*.conf: Владелецroot:rootс режимом0644. -
/etc/docker/daemon.json: Владелецroot:rootс режимом0644.
Расположение файлов конфигурации и данных¶
-
OpenLiteSpeed:
-
Конфигурация:
/usr/local/lsws/conf/ -
Логи:
/usr/local/lsws/logs/ -
Nginx:
-
Docker Compose:
/root/nginx/compose.yml -
Виртуальные хосты:
/data/nginx/user_conf.d/ -
Переменные окружения:
/data/nginx/nginx-certbot.env -
Docker:
-
Конфигурация демона:
/etc/docker/daemon.json -
Данные:
/var/lib/docker/и/var/lib/containerd/ -
SSL-сертификаты:
-
Управляются томом Docker
nginx_secrets, отображаются на/etc/letsencryptвнутри контейнера.
Доступные порты для подключения¶
-
Порт 80: Доступ по HTTP, перенаправляется на HTTPS.
-
Порт 443: Доступ по HTTPS к обратному прокси-серверу Nginx.
-
Порт 7080: Внутренний порт для OpenLiteSpeed WebAdmin, доступен только через прокси Nginx.
Запуск, остановка и обновление¶
Служба OpenLiteSpeed¶
Управляйте службой OpenLiteSpeed с помощью следующих команд:
Стек Docker Nginx¶
Управляйте стеком Docker Nginx и Certbot с помощью следующих команд:
Обновление Node.js¶
Для обновления Node.js используйте менеджер пакетов:
Обновление OpenLiteSpeed¶
Для обновления OpenLiteSpeed используйте менеджер пакетов: