Главная
» Как сделать
»
Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.
Запустите Collabora CODE Behind Nginx с завершением TLS-соединения.
После установки Collabora CODE за HTTPS-протокол могут возникнуть проблемы с отображением документов, поскольку прокси-сервер и CODE не могут определить, где заканчивается протокол TLS, или прокси-сервер отбрасывает трафик WebSocket. Настройте Nginx для предоставления открытого сертификата, переадресации на частный прослушиватель CODE и передачи маршрутов WebSocket. Настройки CODE: ssl.enable=falseи ssl.termination=true.
Разберитесь, что именно изменяет завершение SSL-соединения.
Завершение TLS означает, что Nginx обрабатывает HTTPS-соединение и сертификат браузера, в то время как CODE использует HTTP на порту 9980 за ним. Держите этот слушатель в приватном режиме: привяжите его к локальной петле на одном хосте или используйте частную сеть Docker. Если трафик от прокси к CODE проходит через недоверенную сеть, защитите это соединение с помощью TLS или туннеля.
Браузер использует HTTPS для связи с Nginx; HTTP ограничивается частным каналом связи между прокси-сервером и CODE.
Подготовьте контейнер и сертификат.
Выберите общедоступное имя хоста. Создайте DNS-запись, указывающую office.example.comна прокси-сервер Nginx. Получите сертификат для этого имени хоста и установите цепочку сертификатов и закрытый ключ на прокси-сервере.
Держите порт CODE в секрете. Для Nginx, установленного непосредственно на хосте Docker, публикуйте порт контейнера только на локальном интерфейсе (loopback). В Compose соответствующее сопоставление выглядит следующим образом 127.0.0.1:9980:9980: . Не публикуйте порт 9980:9980на каждом интерфейсе хоста, если это явно не запрещено брандмауэром и сетевой архитектурой.
Установите режим TLS для CODE. В службе Compose добавьте два параметра в конфигурацию CODE. В приведенном ниже примере используется переменная изображения, чтобы вы могли закрепить именно тот тег, который вы проверили и протестировали.
Привязка к IP-адресу 127.0.0.1 обеспечивает доступность прослушивателя CODE только с хоста Docker.Эти параметры указывают CODE, что обработка TLS осуществляется обратным прокси-сервером.
Укажите COLLABORA_CODE_IMAGEпроверенный, закрепленный тег образа. Сохраните список разрешенных хостов WOPI и настройки аутентификации; завершение TLS не заменяет их. Если Nginx — это другой сервис Docker, опустите сопоставление портов хоста и используйте проксирование http://collabora:9980в общей частной сети.
Настройте Nginx для завершения TLS-соединения и проксирования трафика CODE.
Добавьте виртуальный хост HTTPS. Укажите следующие пути внутри блока сервера Nginx для публичного имени хоста Collabora. Замените пример имени хоста и пути к сертификату. Эта конфигурация предназначена для корневого URL-адреса Collabora, а не для URL-адреса, смонтированного по пути, например /office/, .
Nginx владеет открытым сертификатом и прослушивает HTTPS-трафик для имени хоста Collabora.
Перенаправляйте маршруты к ресурсам редактора, обнаружению и возможностям. Для туннелирования WebSocket в эти места необходимы заголовки HTTP/1.1 и Upgrade; длительный таймаут чтения поддерживает открытыми сеансы редактирования. См. документацию Nginx /cool/.../wsпо проксированию WebSocket ./cool/adminws
Перенаправляйте ресурсы редактора, данные обнаружения WOPI и конечные точки возможностей на один и тот же прослушиватель CODE.Для работы основного маршрута WebSocket требуется HTTP/1.1 и заголовки Upgrade, иначе редактор может загрузиться, но стать недоступным.Перенаправьте административный WebSocket и остальные маршруты передачи документов.
Примените изменения и проверьте работу с учетом версии.
Перед перезагрузкой проверьте Nginx. Запустите команду nginx -t. Продолжайте только в том случае, если Nginx сообщит об успешном прохождении проверки конфигурации; затем перезагрузите Nginx с помощью стандартной команды службы вашей системы.
Пересоздайте контейнер CODE. Примените изменения Compose с помощью команды docker compose up -d collabora`.`. Проверьте журналы контейнера на наличие ошибок запуска и убедитесь, что активная конфигурация включает оба параметра SSL.
Перед перезагрузкой выполните проверку синтаксиса, чтобы некорректно сформированный блок сервера не нарушил работу других сайтов.
Для контекста версий: 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.