Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.

После установки Collabora CODE за HTTPS-протокол могут возникнуть проблемы с отображением документов, поскольку прокси-сервер и CODE не могут определить, где заканчивается протокол TLS, или прокси-сервер отбрасывает трафик WebSocket. Настройте Nginx для предоставления открытого сертификата, переадресации на частный прослушиватель CODE и передачи маршрутов WebSocket. Настройки CODE: ssl.enable=falseи ssl.termination=true.

В этом примере используется Nginx на хосте Docker. Для прокси в другом контейнере используйте частную сеть Docker. См. настройки прокси Collabora и руководство по образам Docker CODE для получения информации о параметрах, специфичных для конкретной версии.

Разберитесь, что именно изменяет завершение SSL-соединения.

Завершение TLS означает, что Nginx обрабатывает HTTPS-соединение и сертификат браузера, в то время как CODE использует HTTP на порту 9980 за ним. Держите этот слушатель в приватном режиме: привяжите его к локальной петле на одном хосте или используйте частную сеть Docker. Если трафик от прокси к CODE проходит через недоверенную сеть, защитите это соединение с помощью TLS или туннеля.

Сетевая диаграмма, показывающая завершение HTTPS-соединения браузера на Nginx до того, как частный HTTP-порт достигнет контейнера Collabora CODE на IP-адресе 127.0.0.1, порт 9980.
Браузер использует HTTPS для связи с Nginx; HTTP ограничивается частным каналом связи между прокси-сервером и CODE.

Подготовьте контейнер и сертификат.

  1. Выберите общедоступное имя хоста. Создайте DNS-запись, указывающую office.example.comна прокси-сервер Nginx. Получите сертификат для этого имени хоста и установите цепочку сертификатов и закрытый ключ на прокси-сервере.
  2. Держите порт CODE в секрете. Для Nginx, установленного непосредственно на хосте Docker, публикуйте порт контейнера только на локальном интерфейсе (loopback). В Compose соответствующее сопоставление выглядит следующим образом 127.0.0.1:9980:9980: . Не публикуйте порт 9980:9980на каждом интерфейсе хоста, если это явно не запрещено брандмауэром и сетевой архитектурой.
  3. Установите режим TLS для CODE. В службе Compose добавьте два параметра в конфигурацию CODE. В приведенном ниже примере используется переменная изображения, чтобы вы могли закрепить именно тот тег, который вы проверили и протестировали.
Редактор Docker Compose показывает, что порт службы Collabora привязан к 127.0.0.1 на порту 9980.
Привязка к IP-адресу 127.0.0.1 обеспечивает доступность прослушивателя CODE только с хоста Docker.
Настройка среды Docker Compose с параметрами ssl.enable=false и ssl.termination=true для Collabora CODE
Эти параметры указывают CODE, что обработка TLS осуществляется обратным прокси-сервером.
services:
  collabora:
    image: ${COLLABORA_CODE_IMAGE}
    restart: unless-stopped
    ports:
      - "127.0.0.1:9980:9980"
    environment:
      extra_params: "--o:ssl.enable=false --o:ssl.termination=true"

Укажите COLLABORA_CODE_IMAGEпроверенный, закрепленный тег образа. Сохраните список разрешенных хостов WOPI и настройки аутентификации; завершение TLS не заменяет их. Если Nginx — это другой сервис Docker, опустите сопоставление портов хоста и используйте проксирование http://collabora:9980в общей частной сети.

Настройте Nginx для завершения TLS-соединения и проксирования трафика CODE.

  1. Добавьте виртуальный хост HTTPS. Укажите следующие пути внутри блока сервера Nginx для публичного имени хоста Collabora. Замените пример имени хоста и пути к сертификату. Эта конфигурация предназначена для корневого URL-адреса Collabora, а не для URL-адреса, смонтированного по пути, например /office/, .
Фрагмент конфигурации Nginx с указанием TLS-прослушивателя, имени сервера office.example.com и путей к файлам сертификатов.
Nginx владеет открытым сертификатом и прослушивает HTTPS-трафик для имени хоста Collabora.
server {
    listen 443 ssl;
    server_name office.example.com;
    ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;

    location ^~ /browser {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/discovery {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/capabilities {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ^~ /cool/adminws {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ~ ^/(c|l)ool {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Перенаправляйте маршруты к ресурсам редактора, обнаружению и возможностям. Для туннелирования WebSocket в эти места необходимы заголовки HTTP/1.1 и Upgrade; длительный таймаут чтения поддерживает открытыми сеансы редактирования. См. документацию Nginx /cool/.../wsпо проксированию WebSocket ./cool/adminws

Блокировка определения местоположения Nginx перенаправляет пути обнаружения браузера и хостинга к частному прослушивателю CODE.
Перенаправляйте ресурсы редактора, данные обнаружения WOPI и конечные точки возможностей на один и тот же прослушиватель CODE.
Расположение WebSocket в Nginx для удобного пути с HTTP 1.1, заголовками Upgrade и Connection и длительным таймаутом чтения.
Для работы основного маршрута WebSocket требуется HTTP/1.1 и заголовки Upgrade, иначе редактор может загрузиться, но стать недоступным.
Конфигурация Nginx для WebSocket в административной панели Cool и путей запросов Collabora Cool или Lool.
Перенаправьте административный WebSocket и остальные маршруты передачи документов.

Примените изменения и проверьте работу с учетом версии.

  1. Перед перезагрузкой проверьте Nginx. Запустите команду nginx -t. Продолжайте только в том случае, если Nginx сообщит об успешном прохождении проверки конфигурации; затем перезагрузите Nginx с помощью стандартной команды службы вашей системы.
  2. Пересоздайте контейнер CODE. Примените изменения Compose с помощью команды docker compose up -d collabora`.`. Проверьте журналы контейнера на наличие ошибок запуска и убедитесь, что активная конфигурация включает оба параметра SSL.
Окно терминала с командой nginx -t готово для проверки конфигурации обратного прокси-сервера.
Перед перезагрузкой выполните проверку синтаксиса, чтобы некорректно сформированный блок сервера не нарушил работу других сайтов.

Для контекста версий: 22 июля 2026 года в репозитории Collabora было зафиксировано сообщение о том, что встроенная coolwsd --probeпроверка работоспособности в CODE 26.04.2.2 и более поздних версиях может проверять HTTPS на порту 9980, даже если TLS завершается на прокси-сервере. Это может помечать контейнер как неработоспособный, в то время как публичная конечная точка отвечает. Просмотрите запись о проблеме для вашего тега образа ; протестируйте публичную конечную точку и сеанс редактирования, прежде чем рассматривать только состояние работоспособности как доказательство сбоя TLS. Сохраняйте проверки работоспособности, если их не заменит другой монитор.

Проверьте обнаружение HTTPS и наличие реальной сессии редактирования.

Запрос должен быть отправлен https://office.example.com/hosting/discoveryчерез браузер или с помощью команды curl`.`. Он должен вернуть XML-файл обнаружения WOPI по HTTPS, при этом URL-адреса должны использовать общедоступное имя хоста HTTPS. Предупреждение о сертификате указывает на проблему с именем хоста или сертификатом; URL-адреса HTTP указывают на несоответствие режима TLS или схемы переадресации; ошибка 502 означает, что прокси-сервер не может связаться с CODE.

Далее откройте тестовый документ на подключенном хосте WOPI и убедитесь, что редактирование работает. В инструментах разработчика браузера запрос /cool/.../wsдолжен установить соединение WebSocket. Если обнаружение работает, но редактирование зависает, проверьте адреса WebSocket и заголовки. Убедитесь, что интеграция разрешает хост WOPI и указывает на https://office.example.com.

Настройка прошла успешно: сертификат является доверенным, обнаружение осуществляется по протоколу HTTPS, порт 9980 остается закрытым, а тестовый документ открывается и редактируется через WebSocket.

Оставить комментарий

Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.

Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.

Настройте Nginx на обработку HTTPS для контейнера Collabora CODE, корректное перенаправление WebSockets и проверку общедоступной конечной точки без открытия порта 9980.

Текст должен оставаться видимым при открытии мобильной клавиатуры Collabora.

Текст должен оставаться видимым при открытии мобильной клавиатуры Collabora.

Устранение неполадок с клавиатурой мобильного браузера, скрывающей текст в Collabora Online, с помощью быстрых обходных путей и отдельных проверок для браузеров, встроенных WebView и страниц-хостов.

Остановите ненужную печать и загрузку в ONLYOFFICE.

Остановите ненужную печать и загрузку в ONLYOFFICE.

Установите ограничения на печать и загрузку для ссылок ONLYOFFICE, участников переговорных комнат или сеансов Docs API, а затем проверьте эти ограничения в учетной записи получателя.

Настройте надежное резервное копирование для рабочего пространства ONLYOFFICE.

Настройте надежное резервное копирование для рабочего пространства ONLYOFFICE.

В ONLYOFFICE Workspace укажите место назначения резервного копирования, расписание, охват почты и лимит хранения, а затем убедитесь, что архив готов к восстановлению.

Разверните ONLYOFFICE Docs Enterprise с помощью официального файла конфигурации (Compose File).

Разверните ONLYOFFICE Docs Enterprise с помощью официального файла конфигурации (Compose File).

Запустите стек Enterprise Docker Compose, сохраните его лицензию и данные, безопасно настройте JWT и убедитесь, что редакторы готовы к интеграции.

Чистый текст электронной таблицы с многоразовым макросом ONLYOFFICE

Чистый текст электронной таблицы с многоразовым макросом ONLYOFFICE

Используйте макрос ONLYOFFICE на JavaScript для удаления непечатаемых символов и лишних пробелов в заданном диапазоне электронной таблицы, обеспечивая безопасный процесс проверки.

Измените место хранения по умолчанию в рабочей области ONLYOFFICE.

Измените место хранения по умолчанию в рабочей области ONLYOFFICE.

Переместите данные портала с диска по умолчанию на поддерживаемый облачный провайдер хранения данных или безопасно переместите данные Docker, изменив сопоставление томов хоста.

Полностью удалите ONLYOFFICE Document Server из Linux.

Полностью удалите ONLYOFFICE Document Server из Linux.

Определите, использует ли Document Server пакет Linux или Docker, удалите только его компоненты и проверьте оставшиеся данные, не удаляя по ошибке общие службы.

Прекратите тормозить процесс совместного редактирования в ONLYOFFICE, выявив узкое место.

Прекратите тормозить процесс совместного редактирования в ONLYOFFICE, выявив узкое место.

Причину замедления совместного редактирования можно определить как нехватку ресурсов Docker, проблемы с прокси-соединениями или загрузку документов, после чего выберите решение, соответствующее вашим измерениям.

Настройка HTTPS для ONLYOFFICE Docs в Docker

Настройка HTTPS для ONLYOFFICE Docs в Docker

Выберите место завершения TLS-соединения, безопасно смонтируйте доверенный сертификат и закрытый ключ, а также проверьте доступ по HTTPS к серверу ONLYOFFICE Docs, работающему в контейнере Docker.