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

Обзор развертывания ONLYOFFICE Document Server на сервере

Предварительные требования и базовые условия

Для развертывания требуется сервер Linux с операционной системой Ubuntu и правами root. В системе должны быть установлены Docker и Docker Compose для управления контейнеризованным приложением и обратным прокси-сервером. Сервер должен быть доступен через интернет для успешного завершения процесса выдачи SSL-сертификата.

FQDN конечной панели

Приложение доступно по следующему формату полного доменного имени (FQDN):

  • only-docs<Server ID>.hostkey.in:443

Замените <Server ID> на конкретный идентификатор, назначенный экземпляру сервера.

Структура файлов и каталогов

Развертывание использует следующую структуру каталогов для файлов конфигурации, хранения данных и сертификатов:

  • /root/nginx: Содержит конфигурацию Docker Compose для обратного прокси-сервера.

  • /root/nginx/compose.yml: Файл Docker Compose, определяющий сервисы Nginx и Certbot.

  • /data/nginx/user_conf.d: Каталог, содержащий пользовательские файлы конфигурации Nginx для приложения.

  • /data/nginx/user_conf.d/only-docs<Server ID>.hostkey.in.conf: Специфичный файл конфигурации Nginx для экземпляра ONLYOFFICE Document Server.

  • /data/nginx/nginx-certbot.env: Файл окружения, содержащий настройки для контейнера Nginx-Certbot.

  • /etc/letsencrypt: Точка монтирования тома для SSL-сертификатов, управляемых Certbot.

Процесс установки приложения

Приложение развертывается с использованием контейнеров Docker. Основным приложением является ONLYOFFICE Document Server версии 9.3. Установка включает запуск контейнера приложения и настройку обратного прокси-сервера с завершением SSL-соединения.

Контейнер приложения настроен со следующими параметрами:

  • Образ: onlyoffice/documentserver:9.3

  • Имя контейнера: onlyoffice-docs

  • Политика перезапуска: always

  • Связывание портов: 127.0.0.1:8080:80 (только внутренний)

  • Переменные окружения:

  • JWT_ENABLED: true

  • JWT_SECRET: change_me

Контейнеры Docker и их развертывание

Развертывание состоит из двух основных контейнеризованных компонентов: сервера приложения и обратного прокси-сервера.

Контейнер ONLYOFFICE Document Server

Контейнер приложения управляется напрямую через команды Docker. Он слушает порт 80 внутри контейнера и связан с портом 8080 на интерфейсе localhost хост-машины.

Контейнер Nginx и Certbot

Обратный прокси-сервер и управление SSL-сертификатами обрабатываются стеком Docker Compose, расположенным в /root/nginx. Стек включает:

  • Сервис: nginx

  • Образ: jonasal/nginx-certbot:latest

  • Политика перезапуска: unless-stopped

  • Режим сети: host

  • Тома:

  • nginx_secrets смонтирован в /etc/letsencrypt для хранения сертификатов.

  • /data/nginx/user_conf.d смонтирован в /etc/nginx/user_conf.d для пользовательских конфигураций.

  • Окружение:

  • CERTBOT_EMAIL: hkadm@hostkey.com

  • Конфигурация загружается из /data/nginx/nginx-certbot.env.

Прокси-серверы

В развертывании используется Nginx в качестве обратного прокси-сервера для обработки внешнего трафика и завершения SSL-соединения. Прокси настроен на пересылку запросов во внутренний контейнер ONLYOFFICE Document Server.

  • Цель прокси: http://127.0.0.1:8080

  • Файл конфигурации: /data/nginx/user_conf.d/only-docs<Server ID>.hostkey.in.conf

  • Управление SSL: Автоматизировано через контейнер jonasal/nginx-certbot с использованием Let's Encrypt.

  • Внешний порт: 443 (HTTPS)

  • Внутренний путь: /

  • Внешний путь: /

Права доступа и безопасность

Приложение защищено следующими мерами:

  • Контейнер ONLYOFFICE Document Server связан только с интерфейсом localhost (127.0.0.1), что предотвращает прямой внешний доступ к порту приложения.

  • Весь внешний трафик маршрутизируется через обратный прокси-сервер Nginx, который обеспечивает использование HTTPS на порту 443.

  • В контейнере приложения включена аутентификация JWT (JWT_ENABLED: true).

  • Каталог конфигурации Nginx и файлы Compose принадлежат пользователю root с ограниченными правами доступа.

Доступные порты для подключения

В развертывании используются следующие порты:

  • Порт 443: Внешний доступ HTTPS через обратный прокси-сервер Nginx.

  • Порт 8080: Внутренний доступ HTTP для контейнера ONLYOFFICE Document Server (связан только с 127.0.0.1).

  • Порт 80: Внутренний порт внутри контейнера ONLYOFFICE Document Server (отображен на порт хоста 8080).

Запуск, остановка и обновление

Управление службами выполняется с использованием команд Docker и Docker Compose.

Управление контейнером ONLYOFFICE Document Server

  • Запуск/Перезапуск: docker start onlyoffice-docs или docker restart onlyoffice-docs

  • Остановка: docker stop onlyoffice-docs

  • Обновление: Загрузите новый образ и пересоздайте контейнер:

    docker pull onlyoffice/documentserver:9.3
    docker stop onlyoffice-docs
    docker rm onlyoffice-docs
    docker run -d --name onlyoffice-docs --restart always -p 127.0.0.1:8080:80 -e JWT_ENABLED=true -e JWT_SECRET=change_me onlyoffice/documentserver:9.3
    

Управление стеком прокси-сервера Nginx

  • Запуск/Перезапуск:

    cd /root/nginx
    docker compose up -d
    

  • Остановка:

    cd /root/nginx
    docker compose down
    

  • Обновление: Загрузите последний образ и перезапустите стек:

    cd /root/nginx
    docker compose pull
    docker compose up -d
    

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