Перейти к содержанию

Обзор развертывания 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 и конкретного стека приложений.

  1. Установка системных предварительных требований: Система устанавливает основные пакеты, включая curl, wget, gnupg, ca-certificates и lsb-release.

  2. Установка OpenLiteSpeed:

    • В систему добавляется репозиторий LiteSpeed.

    • Устанавливается пакет openlitespeed.

    • Служба lsws запускается и включается для автоматического запуска при загрузке.

    • Пароль WebAdmin настраивается с помощью скрипта admpass.sh с именем пользователя admin.

  3. Установка Node.js:

    • Добавляется репозиторий NodeSource для Node.js 20.x.

    • Устанавливается пакет nodejs.

  4. Установка Docker:

    • Добавляются официальный GPG-ключ Docker и репозиторий.

    • Устанавливаются следующие пакеты Docker:

    • docker-ce

    • docker-ce-cli

    • containerd.io

    • docker-buildx-plugin

    • docker-compose-plugin

    • Службы containerd и docker запускаются и включаются.

  5. Развертывание 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)

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×