Разместите Collabora за Nginx, не нарушая работу WebSockets.

Разместите Collabora на выделенном HTTPS-хосте в Nginx, перенаправьте пути редактора и обнаружения на coolwsd, и явно передавайте заголовки обновления WebSocket в маршрутах активных сокетов. Для одного хоста Nginx может завершать публичный TLS и отправлять HTTP-запросы в Collabora через частный интерфейс; если Nginx и Collabora работают в разных контейнерах, используйте имя службы Collabora в их общей сети вместо 127.0.0.1.

HTTPS-трафик в браузере на порту 443 перенаправляется через Nginx в Collabora по частному HTTP-трафику на порту 9980.
Схема подключения в этом примере: браузер использует HTTPS на порту 443, а Nginx перенаправляет трафик в Collabora по частному HTTP-каналу на порту 9980.

В этом примере предполагается, что пользователи открывают приложение https://office.example.com, а Nginx обрабатывает его сертификат. Порт прослушивания по умолчанию в Collabora — 9980; используйте порт, доступный в вашей системе. Для префикса URL-адреса, например, https://example.com/collabora/требуется согласованный путь и настройки корневого каталога службы, поэтому данная конфигурация корневого хоста не будет применяться без изменений.

1. Определите карту соединений с исходящим и WebSocket-каналами.

В контексте Nginx httpдобавьте имя вышестоящего сервера для Collabora и карту, которая устанавливает заголовок соединения upgradeтолько тогда, когда клиент запрашивает WebSocket. Разместите этот блок вне любого другого serverблока. Замените адрес, если Nginx обращается к Collabora другим способом.

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

upstream coolwsd {
    server 127.0.0.1:9980;
}

Если сам Nginx является контейнером, 127.0.0.1то используется именно этот контейнер Nginx, а не контейнер Collabora. В общей сети Docker вместо этого можно server collabora:9980;использовать имя сервиса, которое разрешается в этой сети.

2. Добавьте виртуальный хост HTTPS и маршруты Collabora.

Внутри блока HTTPS serverдля office.example.comперенаправьте ресурсы браузера, конечные точки обнаружения, соединения WebSocket и оставшиеся пути Collabora. Расположение соответствует рекомендациям Collabora по использованию прокси. Размещайте конкретные адреса сокетов выше более общего маршрута cool/ lool, чтобы Nginx корректно применял заголовки WebSocket.

Конфигурация сервера Nginx с раздельным размещением ресурсов браузера, обнаружения и возможностей, направляемых на сервер Collabora.
Фрагмент маршрута Nginx: ресурсы браузера, обнаружение WOPI и возможности передаются одному и тому же вышестоящему провайдеру Collabora.
server {
    listen 443 ssl;
    server_name office.example.com;

    ssl_certificate     /path/to/fullchain.pem;
    ssl_certificate_key /path/to/private-key.pem;

    location ^~ /browser {
        proxy_pass http://coolwsd;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Host $http_host;
    }

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

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

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://coolwsd;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
    }

    location ^~ /cool/adminws {
        proxy_pass http://coolwsd;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 3600s;
    }

    location ~ ^/(c|l)ool {
        proxy_pass http://coolwsd;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Замените пути к сертификатам файлами вашего хоста. Если в вашей установке не используется консоль администратора, указание /cool/adminwsместоположения может не потребоваться для редактирования документов; основной /cool/.../wsмаршрут имеет важное значение. proxy_read_timeoutЗдесь указан один час в качестве примера, это не универсальное требование. Таймаут чтения прокси-сервера Nginx по умолчанию составляет 60 секунд между последовательными чтениями. Выберите значение, превышающее периоды простоя, необходимые для ваших сессий, или используйте соответствующий трафик WebSocket ping, если это поддерживается.

3. Настройте режим TLS в Collabora в соответствии с прокси-сервером.

Пользователи должны подключаться к Collabora по HTTPS, даже если частный канал Nginx-Collabora использует HTTP. В такой конфигурации с завершением TLS настройте coolwsdпрокси-сервер как терминатор TLS: SSL отключается на внутреннем слушателе, а завершение SSL включается. Примените эти настройки способом, поддерживаемым вашим пакетом или образом контейнера, а затем перезапустите/перезагрузите Collabora в соответствии с требованиями документации.

Настройка Nginx для маршрута WebSocket Collabora с HTTP 1.1, заголовками Upgrade и Connection, а также таймаутом чтения.
Фрагмент маршрута WebSocket: HTTP/1.1 и заголовки Upgrade/Connection позволяют Nginx туннелировать соединение редактора в режиме реального времени; отрегулируйте время ожидания чтения в соответствии с вашей средой.

Используйте HTTP-протокол только в доверенной частной сети и заблокируйте публичный доступ к порту 9980. Если политика требует шифрования между Nginx и Collabora, используйте HTTPS-протокол и правильно настройте проверку сертификата; не отключайте проверку, чтобы скрыть несоответствие сертификата. В документации по настройкам прокси Collabora различается SSL на прокси-сервере и SSL между прокси-сервером и coolwsd.

Также установите URL-адрес Collabora в интеграции хранилища на общедоступное имя хоста HTTPS. В руководстве администратора Nextcloud требуется, чтобы браузер и оба сервера могли взаимодействовать друг с другом по протоколу HTTP(S) с использованием соответствующих внешних протоколов. Ограничьте список разрешенных адресов WOPI ожидаемым хостом хранилища и адресом Collabora; не ослабляйте его для решения проблемы с маршрутизацией через прокси.

4. Проверьте конфигурацию с обеих сторон.

Перед перезагрузкой проверьте синтаксис Nginx:

sudo nginx -t
sudo systemctl reload nginx

Если Nginx работает в контейнере, используйте процедуру проверки и перезагрузки этого контейнера. С хоста Nextcloud проверьте общедоступные конечные точки Collabora, используя фактическое имя хоста:

curl -fsS https://office.example.com/hosting/discovery -o /dev/null
curl -fsS https://office.example.com/hosting/capabilities -o /dev/null

Откройте эти HTTPS-адреса в браузере пользователя. Они проверяют доступность, но успешный ответ на запрос обнаружения сам по себе не доказывает работоспособность редактирования документа. Откройте документ и используйте панель «Сеть» в браузере, чтобы убедиться, что ресурсы загружены и соединение /cool/.../wsостается открытым. Успешное соединение HTTP/1.1 WebSocket обычно показывает ошибку 101 Switching Protocols; точное отображение может зависеть от браузера и протокола передачи данных. Если эта стандартная настройка работает в Firefox, но не работает в Chromium, проверьте метод запроса и протокол. В отчете об ошибке Collabora, открытом для версии 25.04, описывается соединение Chromium WebSocket через HTTP/2 с CONNECTошибкой 405; оно остается открытым, как проверено 9 октября 2026 г. Это отчет, специфичный для версии, а не универсальное поведение. Сравните версии Collabora, Nginx и браузера, прежде чем изменять настройки HTTP/2. См. проблему Collabora 12155 .

Терминал, отображающий команду curl для конечной точки обнаружения Collabora, расположен над обычным пустым редактором документов.
Режим проверки: на терминале отображается запрос на проверку обнаружения, в то время как редактор готов к отдельной проверке на реальном документе; данный пример не дает никаких результатов.

Если обнаружение не удается, проверьте журнал ошибок Nginx и убедитесь в правильности имени хоста, порта и протокола вышестоящего сервера. Если обнаружение работает, но редактирование не удается, проверьте маршрут WebSocket, заголовки, таймаут и журналы Collabora. Ошибка авторизации WOPI указывает на список разрешенных хостов хранилища. В руководстве по устранению неполадок Nextcloud Office рекомендуется проверить доступность из браузера, Nextcloud и Collabora, а затем просмотреть журналы обоих серверов.

В руководстве по проксированию WebSocket в Nginx объясняется, почему Upgradeпараметры Connectionдолжны передаваться явно и почему важно поведение таймаута простоя. См. справочник по модулю прокси Nginx для получения информации о поведении директив. После успешного прохождения проверок откройте, отредактируйте, сохраните и снова откройте тестовый документ, прежде чем предлагать пользователям использовать новый маршрут.

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

Подключите Collabora Online к ownCloud Infinite Scale

Подключите Collabora Online к ownCloud Infinite Scale

Настройте WOPI-соединение между Collabora Online и ownCloud Infinite Scale, укажите правильные URL-адреса сервисов и убедитесь, что изменения в документе сохраняются.

Экспорт блочных файлов в Collabora CODE через WOPI

Экспорт блочных файлов в Collabora CODE через WOPI

Чтобы предотвратить экспорт документов в Collabora Online CODE, установите разрешение WOPI DisableExport, а затем убедитесь, что хост и редактор применяют это разрешение.

Разместите Collabora за Nginx, не нарушая работу WebSockets.

Разместите Collabora за Nginx, не нарушая работу WebSockets.

Настройте завершение TLS-соединения Nginx, маршруты Collabora и заголовки WebSocket, а затем протестируйте общедоступные конечные точки, прежде чем открывать реальные документы.

Предотвратите завершение сеансов редактирования кода через 10 минут.

Предотвратите завершение сеансов редактирования кода через 10 минут.

Проследите причину разрыва соединения CODE с интервалом в 10 минут до прокси-сервера, балансировщика нагрузки или WebSocket-сервера, затем исправьте ошибку тайм-аута и убедитесь, что соединение остается активным.

Развертывание Collabora CODE в Kubernetes с помощью Helm

Развертывание Collabora CODE в Kubernetes с помощью Helm

Установите официальный Helm-диаграмму Collabora, настройте доступ к WOPI и привязку входящего трафика, а также проверьте развертывание на наличие распространенных ошибок настройки.

Как отследить пустой документ Collabora до слоя, вызвавшего ошибку.

Как отследить пустой документ Collabora до слоя, вызвавшего ошибку.

Используйте запросы браузера, журналы WOPI и целевые проверки прокси-серверов, чтобы выяснить, почему Collabora открывает пустой документ, и выберите решение, соответствующее полученным данным.

Включить многоязычную проверку орфографии в Collabora Online CODE

Включить многоязычную проверку орфографии в Collabora Online CODE

Настройте словари CODE Docker и правильно разметьте фрагменты документа, чтобы проверка орфографии на английском, французском и других поддерживаемых языках выполнялась корректно.

Настройте таймер простоя Collabora для активных представлений документов.

Настройте таймер простоя Collabora для активных представлений документов.

В coolwsd отрегулируйте пороговое значение неактивности для каждого представления и различайте его от затемнения фоновых вкладок, выгрузки документов, автосохранения и истечения срока действия авторизации.

Отключите проверку обновления кода Collabora и нежелательные подключения.

Отключите проверку обновления кода Collabora и нежелательные подключения.

Остановите запланированные проверки обновлений CODE, просмотрите дополнительные удаленные сервисы и используйте исходящие сетевые элементы управления, не нарушая редактирование документов.

Подключите Seafile и Collabora, используя правильный URL-адрес WOPI.

Подключите Seafile и Collabora, используя правильный URL-адрес WOPI.

Обеспечьте безопасное редактирование документов в Seafile, настроив URL-адрес обнаружения Collabora, HTTPS и доступ WOPI для вашей системы.