Для начала убедитесь, что браузер, Nextcloud и Collabora могут получить доступ к правильным URL-адресам серверов по одной и той же схеме HTTP или HTTPS. В Nextcloud проверьте конечные точки Collabora /hosting/capabilities; /hosting/discoveryесли они отвечают, но документы по-прежнему не отображаются, проверьте маршрут WebSocket обратного прокси-сервера и список разрешенных WOPI.
Сообщение «Ну, это неловко» — это типичная ошибка открытия документа, а не самостоятельный диагноз. Причиной может быть недоступный URL-адрес, несоответствие TLS или DNS, прокси-сервер, который прерывает обновления WebSocket, или хост WOPI, которому Collabora или Nextcloud не доверяют. Приведенные ниже проверки используют типичный пример с Nextcloud по адресу https://cloud.example.comи Collabora по адресу https://office.example.com; замените оба имени на ваши фактические имена хостов.
1. Загружаются ли конечные точки Collabora?
Откройте следующие URL-адреса в браузере, расположенном в той же сети, что и пользователь, изменив имя хоста Collabora:
https://office.example.com/hosting/capabilitieshttps://office.example.com/hosting/discovery
Они должны возвращать данные конечной точки Collabora, а не предупреждение о сертификате браузера, страницу 404 или ошибку обратного прокси. Конечная точка обнаружения обычно возвращает XML. Вы также можете протестировать с хоста Nextcloud или его контейнера приложения:
curl -fsS https://office.example.com/hosting/capabilities
curl -fsS https://office.example.com/hosting/discovery
Сбой в браузере указывает на проблему с общедоступным или локальным DNS, брандмауэром, сертификатом или маршрутизацией через прокси. Если браузер успешно завершает работу, а команда из командной строки Nextcloud завершается с ошибкой, это означает, что маршрут на стороне сервера отличается; браузер пользователя и сервер Nextcloud должны иметь свои собственные рабочие пути к Collabora. В текущем руководстве администратора Nextcloud рекомендуется протестировать обе конечные точки из обоих местоположений и убедиться, что Collabora также может связаться с Nextcloud по протоколу HTTP(S).
2. Согласованы ли имя хоста и протокол между двумя сервисами?
В Nextcloud откройте «Настройки» → «Администрирование» → «Office» и убедитесь, что в поле «Сервер Collabora Online» указан общедоступный или иным образом доступный URL-адрес Collabora. Используйте это поле, https://если служба настроена для HTTPS. В документации Nextcloud указано, что настроенный URL-адрес должен использовать тот же протокол, что и установка Collabora, и рекомендуется использовать HTTPS.
Теперь проверьте обратный путь. С хоста или контейнера Collabora запросите конечную точку состояния Nextcloud:
curl -fsS https://cloud.example.com/status.php
Ответ должен быть доступен из Collabora, а не только с вашего ноутбука. Если какой-либо из серверов находится в Docker, проверьте его из соответствующего контейнера или сетевого пространства имен: имя хоста, которое разрешается на хосте, может не разрешаться внутри контейнера. Для встроенного сервера CODE Nextcloud должен иметь возможность связаться сам с собой, используя то же имя хоста, которое пользователи используют в браузере. Если разделение DNS или локальное разрешение имен препятствует этому, исправьте DNS или сопоставление хостов вместо того, чтобы вводить данные localhostдля удаленной службы.
3. Передает ли ваш обратный прокси-сервер трафик WebSocket?
Если URL-адрес для поиска загружается, но окно редактора остается пустым, вращается или отключается, проверьте прокси-сервер перед Collabora. Редактирование использует постоянное соединение WebSocket: прокси-сервер должен перенаправлять текущую /cool/…/wsконечную точку Collabora на службу Collabora и передавать заголовки обновления HTTP/1.1. Проверьте текущий пример прокси-сервера Collabora для вашего программного обеспечения и версии; не вставляйте старую конфигурацию без изменений.
В более старых версиях системы могут по-прежнему использоваться пути, подобные /lool. В руководстве по миграции Collabora описаны изменения с loolна coolи с loleafletна browser. Прокси-сервер, оставленный на старых маршрутах, может возвращать ошибки 404, даже если базовый домен открыт. После редактирования файла прокси-сервера проверьте его синтаксис с помощью команды проверки сервера, перезагрузите его, затем повторно проверьте URL-адрес обнаружения и откройте документ.
Проверьте журналы доступа и ошибок за тот же период времени, что и неудачная попытка. Ошибка 404 /browserуказывает /coolна маршрутизацию пути; неудачное обновление WebSocket предполагает отсутствие обработки обновления или таймаут; ошибка 502 обычно означает, что прокси-сервер не может связаться с вышестоящим сервером Collabora. Это лишь подсказки, а не окончательный диагноз, поэтому сравните их с собственным журналом Collabora.
4. Разрешен ли хост WOPI?
WOPI (Web Application Open Platform Interface) — это протокол, который Nextcloud и Collabora используют для обмена запросами на доступ к документам. Если в журнале Collabora отображается сообщение «Не найдено подходящих хостов WOPI» или сообщение о неавторизованном хосте WOPI, убедитесь, что Collabora настроена на доверие к имени хоста Nextcloud, а не к собственному имени хоста Collabora. При использовании образа Docker проверьте конфигурацию запуска контейнера и его журналы:
docker ps
docker logs --tail=100 CONTAINER_NAME
Замените CONTAINER_NAMEна фактическое имя контейнера Collabora. Для установки нативного пакета проверьте журнал службы с помощью команды sudo journalctl -u coolwsd --since "15 minutes ago". Следуйте инструкциям по настройке хоста WOPI для вашего метода установки; избегайте широких правил разрешения подстановочных знаков.
В Nextcloud Office также есть отдельный список разрешенных WOPI-запросов. Он ограничивает IP-адреса серверов Collabora, которые могут запрашивать файлы из Nextcloud. Добавьте фактический IP-адрес источника, который Nextcloud видит для Collabora; он может отличаться при использовании сети Docker или обратного прокси-сервера. Не вводите 0.0.0.0и не отключайте ограничение только для того, чтобы заглушить ошибку: Nextcloud рекомендует ограничивать WOPI-запросы только ожидаемыми адресами серверов Collabora.
Проверьте исправление
Повторите проверку в браузере пользователя и на сервере Nextcloud: конечные точки обнаружения и возможностей должны отвечать, Nextcloud должен связаться со своим настроенным URL-адресом Collabora, а Collabora должна связаться с конечной точкой состояния Nextcloud. Затем откройте небольшой тестовый документ. Если ошибка по-прежнему возникает, запишите метку времени, действие с затронутым документом, статус HTTP или WebSocket в журнале прокси, а также соответствующие записи в журналах Nextcloud и Collabora. Эти данные помогут отличить сбой сетевого пути от проблемы авторизации WOPI.
Официальные ссылки