Самое быстрое и надежное решение — настроить Collabora Online CODE так, чтобы он доверял точному имени хоста и порту, указанным в URL-адресе источника WOPI, отправленном вашей платформой хранения. Для одного сервера Nextcloud установите в списке разрешенных хостов CODE это имя хоста Nextcloud, пересоздайте контейнер и проверьте еще раз. Если вы используете несколько экземпляров Nextcloud, разрешите доступ каждому из них явно. Не решайте ошибку, открывая доступ WOPI для каждого хоста.
Сообщение «Несанкционированный хост WOPI» обычно означает, что Collabora отклонила хост хранилища, указанный в запросе WOPI. Само по себе это не доказывает, что пароль пользователя, права доступа к документам, сертификат TLS или обратный прокси-сервер неверны. Эти компоненты могут вызывать другие сбои подключения, поэтому используйте журналы Collabora, чтобы подтвердить конкретную причину, прежде чем изменять настройки.
Выберите изменение, соответствующее вашей конфигурации развертывания.
| Развертывание | Рекомендуемое изменение | Компромисс |
| Один экземпляр Nextcloud с Docker CODE | Укажите один явно доверенный хост, обычно aliasgroup1это параметр, поддерживаемый domainвашей версией образа. | Простой в проверке и ограничивающий ввод; необходимо убедиться, что значение соответствует хосту и порту, используемым в запросах WOPI. |
| Несколько экземпляров Nextcloud используют один сервер CODE. | Добавьте отдельную группу хостов для каждого имени хоста хранилища и его преднамеренных псевдонимов. | Редактирование централизовано, но каждый добавленный хост расширяет набор систем, которым разрешено отправлять запросы WOPI. |
| Вместо CODE Docker используйте упакованную версию Collabora Online. | Обновите раздел «Хост WOPI» в управляемой конфигурации службы и перезапустите службу. | Предоставляет прямой контроль над конфигурацией; редактирование сгенерированного файла вручную может быть перезаписано обновлениями пакетов или системы управления конфигурацией. |
| Nextcloud сообщает о предупреждении о наличии списка разрешенных сайтов WOPI. | Отдельно укажите ожидаемый IP-адрес сервера Collabora в настройках администрирования Office в Nextcloud. | Это вторая, обратная проверка; она не заменяет конфигурацию доверенного хоста CODE. |
В приведенных ниже примерах предполагается использование Nextcloud по адресу https://cloud.example.comи Collabora по адресу https://office.example.com. Замените оба имени и порт значениями, используемыми в вашей установке. В руководстве по настройке Docker для Nextcloud используется aliasgroup1для одного хоста хранения, а также описывается добавление еще одной группы псевдонимов для второго хоста Nextcloud. Конфигурация WOPI в Collabora определяет сопоставление хостов по имени хоста и порту; псевдонимы используются для альтернативных имен одного и того же хоста хранения.
1. Подтвердите, какой хост был отклонен Collabora.
Начните с логов контейнера CODE. В развертывании Docker Compose выполните:
docker compose logs --since=10m collabora
Замените collaboraна имя службы в вашем файле Compose. В обычном Docker используйте docker logs --since 10m CONTAINER_NAME. Найдите сообщение, подобное , рядом с неудачной попыткой открытия документа No acceptable WOPI hosts found matching the target host [cloud.example.com] in config. Подсказка — имя хоста в скобках: добавьте указанный там хост хранилища, а не общедоступное имя хоста сервера Collabora.
Также запишите хост и порт в URL-адресе WOPI, если они отображаются в журнале. Сравните их с настроенной записью. Запрос к cloud.example.com:443может не соответствовать записи для внутреннего имени контейнера, например nextcloud, , даже если оба имени разрешаются в одну и ту же машину. Обратные прокси, DNS с раздельным горизонтом и несколько публичных URL-адресов могут привести к тому, что это несоответствие легко пропустить.
Если в журналах отображается другая ошибка, например, сбой поиска DNS, отказ в соединении или ошибка сертификата, устраните эту проблему, а не расширяйте список хостов WOPI.
2. Обновите настройку доверенного хоста WOPI в CODE.
Для установки Docker Compose, обслуживающей один хост Nextcloud, соответствующая часть сервиса может выглядеть следующим образом:
services:
collabora:
image: collabora/code
environment:
- aliasgroup1=https://cloud.example.com:443
Сохраните остальные параметры службы, секреты, тома, порты и настройки обратного прокси. В примере показана только запись в списке разрешенных; это не полный файл Compose для производственной среды. Используйте стиль настроек, уже поддерживаемый используемой вами версией CODE, и проверьте отображаемую или запускаемую конфигурацию после ее изменения. Образы контейнеров и интерфейсы конфигурации могут меняться со временем.
Для одного хоста точную запись хоста проверить проще, чем широкое регулярное выражение. Если ваша установка использует domainпеременную среды, проверьте правила экранирования, описанные для вашего образа, и убедитесь, что выражение соответствует только предполагаемому имени хоста хранилища. Не копируйте неэкранированный подстановочный знак или шаблон родительского домена, который будет соответствовать несвязанным поддоменам.
Для нескольких экземпляров Nextcloud добавьте отдельную явную группу для каждого независимого хоста, используя механизм, поддерживаемый вашей версией CODE. Например, в руководстве по интеграции Nextcloud с Docker показана дополнительная aliasgroup2запись для второго имени хоста облака. Добавляйте псевдонимы только в том случае, если один сервер Nextcloud действительно доступен под несколькими именами, такими как внутреннее имя и публичное имя. Сохраните письменный список этих имен, чтобы можно было удалить старое имя хоста после миграции.
3. Создайте контейнер заново и проверьте отдельный список разрешенных устройств Nextcloud.
После редактирования файла Compose создайте службу заново, чтобы применить новые настройки среды:
docker compose up -d --force-recreate collabora
Используйте правильное имя службы. Затем убедитесь, что контейнер запускается корректно и что ожидаемый хост отображается в его конфигурации запуска или логах. Избегайте вставки полных дампов среды в запросы в службу поддержки: они могут раскрыть пароли или другие секреты.
В настройках администрирования Office в Nextcloud есть отдельная опция под названием «Список разрешенных адресов для запросов WOPI». Этот список ограничивает IP-адреса, с которых можно отправлять запросы WOPI в Nextcloud; Collabora рекомендует ограничить его только ожидаемыми адресами серверов Collabora. Если Nextcloud выдает это предупреждение, добавьте адрес, который Nextcloud фактически видит для запроса, который может отличаться при использовании прокси-сервера или контейнерной сети. Разделите эту проверку от записи хоста CODE: CODE доверяет именам хостов хранилища, в то время как список разрешенных адресов Nextcloud касается IP-адреса запрашивающего сервера.
Если вы используете обратный прокси-сервер, убедитесь, что имя хоста, которое Nextcloud публикует в ссылках WOPI, совпадает с именем хоста, которому CODE настроен доверять. Проверьте URL-адрес сервера Nextcloud Office и конфигурацию публичного хоста обратного прокси-сервера. Не добавляйте имя хоста Office в список разрешенных хостов хранилища WOPI, если оно фактически не является хостом хранилища в URL-адресе WOPI.
4. Проверьте правильность подключения.
Сначала проверьте конечные точки службы Collabora в браузере и на сервере Nextcloud. Замените пример имени хоста на URL-адрес вашего офиса:
curl -fsS https://office.example.com/hosting/capabilities
curl -fsS https://office.example.com/hosting/discovery
Эти проверки подтверждают, что конечные точки отвечают; они не доказывают, что запрос документа WOPI будет авторизован. Далее убедитесь, что CODE может связаться с Nextcloud, используя тот же хост, который публикует Nextcloud, например:
curl -fsS https://cloud.example.com/status.php
Наконец, откройте тестовый документ и одновременно просмотрите логи CODE и Nextcloud. Успешный результат — это загрузка редактора, исчезновение сообщения «No acceptable WOPI hosts» и корректное сохранение небольших изменений. Протестируйте с обычной учетной записи пользователя с теми же правами доступа и редактирования, что и у пользователя, у которого возникла проблема.
Как соотносятся основные варианты
Один точный хост против регулярного выражения
Точное имя хоста с указанным портом обычно является наилучшим вариантом для развертывания в одном облаке: его легко проверить, и он ограничивает случайные совпадения. Регулярное выражение может помочь, когда намеренно управляемый набор имен хостов имеет общий шаблон, но его сложнее проверить, и оно может разрешить непреднамеренные поддомены, если написано слишком широко. Используйте наиболее узкое выражение, удовлетворяющее подтвержденной потребности.
Один экземпляр CODE против отдельных экземпляров
Использование общего сервиса CODE сокращает количество обслуживаемых сервисов, а явные группы могут поддерживать несколько экземпляров Nextcloud. Отдельные экземпляры CODE могут быть целесообразны, когда командам требуется более строгая изоляция конфигурации или независимые окна обслуживания. Компромисс заключается в увеличении объема инфраструктуры для обновления, мониторинга и маршрутизации. Ни один из вариантов не исправляет автоматически несоответствие имени хоста WOPI; каждый экземпляр должен доверять правильному хосту хранения.
Настройки среды контейнера против редактирования XML
Для развертывания Docker CODE используйте интерфейс конфигурации, поддерживаемый образом, и храните его в Compose или другом источнике достоверной информации о развертывании. Это обеспечит воспроизводимость изменений при повторном создании контейнера. coolwsd.xmlПрямое редактирование может быть полезно для управляемого пакета или целенаправленного пользовательского развертывания, но редактирование сгенерированного файла внутри работающего контейнера является ненадежным и может исчезнуть при замене или обновлении. Следуйте инструкциям для конкретного пакета, Helm-диаграммы или образа, который вы используете.
Распространенные ошибки, которых следует избегать
- Разрешение
office.example.comв случае, если отклоненный хост хранилища WOPI имеет значение cloud.example.com.
- Ввод частного имени контейнера, если URL-адрес WOPI содержит общедоступное DNS-имя, или наоборот.
- Предположим, что пустой список разрешенных IP-адресов WOPI в Nextcloud и конфигурация хоста CODE представляют собой один и тот же элемент управления.
- Добавление широкого символа подстановки или отключение проверки хоста только для того, чтобы редактор загрузился.
- Одновременная смена правил прокси, TLS и WOPI затрудняет диагностику результата.
- Проверяем только конечную точку обнаружения и рассматриваем это как доказательство работоспособности авторизации документов.
Когда следует использовать другое решение
Если отклоняемый хост меняется между запросами, проверьте канонический URL-адрес Nextcloud, заголовки доверенного прокси и любые альтернативные корневые каталоги веб-сервера, прежде чем добавлять новые имена. Если все имена хостов совпадают, но ошибка сохраняется, сравните активную конфигурацию CODE с файлом или настройками среды, которые вы редактировали, и убедитесь, что контейнер был пересоздан. Для Kubernetes или Helm редактируйте значения диаграммы или управляемый источник конфигурации, а не работающий под. Если в журналах отображаются ошибки сертификата, брандмауэра, WebSocket или DNS, устраните неполадки на этом уровне, используя соответствующие журналы сервера и проверки сети.
Эти шаги соответствуют руководству администратора Nextcloud 35, доступному с 6 октября 2026 года, и опубликованной Collabora схеме конфигурации WOPI. Конкретные ключи конфигурации могут различаться в зависимости от метода развертывания и версии образа, поэтому перед внесением изменений проверьте их по документации для установленной вами версии.
Официальные ссылки