透過匹配主機來源來修復 CODE 的 WOPI 主機檢查
在程式碼中允許確切的 Nextcloud 或其他 WOPI 來源,然後驗證活動主機允許列表,並將其與 Nextcloud 的來源 IP 限制區分開來。
首先檢查瀏覽器、Nextcloud 和 Collabora 是否都能透過相同的 HTTP 或 HTTPS 協定存取正確的伺服器 URL。在 Nextcloud 中,測試 Collabora 的/hosting/capabilities端點/hosting/discovery;如果這些端點響應正常但文件仍然無法訪問,請檢查反向代理的 WebSocket 路由和 WOPI 允許清單。
「好吧,這真尷尬」這則訊息表示文件開啟失敗,它本身並不是一個診斷結果。原因可能是 URL 無法存取、TLS 或 DNS 不匹配、代理伺服器丟棄了 WebSocket 升級,或 Collabora 或 Nextcloud 不信任 WOPI 主機。以下檢查使用了一個典型範例,其中 Nextcloud 位址為 `<Nextcloud_host>`,https://cloud.example.comCollabora 位址為 `<Collabora_host>` https://office.example.com;請將這兩個名稱替換為您實際的主機名稱。
使用與使用者位於相同網路上的瀏覽器,開啟以下網址,並將 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 是否可以透過 HTTP(S) 存取 Nextcloud。
在 Nextcloud 中,開啟「設定」→「管理」→「Office」,確認 Collabora Online 伺服器欄位包含可公開存取的 Collabora URL。https://如果該服務已設定為 HTTPS,則使用此 URL。 Nextcloud 文件指出,配置的 URL 應使用與 Collabora 安裝相同的協議,並建議使用 HTTPS。
現在檢查返迴路徑。從 Collabora 主機或容器,請求 Nextcloud 的狀態端點:
curl -fsS https://cloud.example.com/status.php
回應應該可以從 Collabora 訪問,而不僅僅是從您的筆記型電腦訪問。如果任一伺服器位於 Docker 容器中,請從相關的容器或網路命名空間進行測試:在主機上可以解析的主機名稱在容器內可能無法解析。對於內建的 CODE 伺服器,Nextcloud 必須能夠使用使用者在瀏覽器中使用的相同主機名稱存取自身。如果分離式 DNS 或本機名稱解析導致無法存取,請修正 DNS 或主機映射,而不是輸入localhost遠端服務的位址。
如果發現 URL 載入成功,但編輯器框架保持空白、載入中或斷開連接,請檢查 Collabora 前端的代理。編輯操作使用持久 WebSocket 連線:代理程式必須將 Collabora 的目前/cool/…/ws端點路由到 Collabora 服務,並傳遞 HTTP/1.1 升級標頭。請查看目前 Collabora 代理程式範例,確認其與您的代理軟體和版本相符;切勿直接貼上舊配置。
舊版可能仍然使用類似 `/etc/website/` 這樣的路徑/lool。 Collabora 的遷移指南記錄了從 `/etc/website/`lool到`/etc/website cool/` 以及從 ` /etc/website/`loleaflet到 ` browser/etc/website/` 的變更。即使主網域可以打開,保留在舊路由上的代理程式也可能傳回 404 錯誤。編輯代理文件後,請使用該伺服器的測試命令驗證其語法,重新載入代理,然後重新測試發現 URL 並開啟文件。
檢查與失敗嘗試相同時間戳記的存取日誌和錯誤日誌。 404 錯誤/browser提示/cool路徑路由問題;WebSocket 升級失敗提示升級處理缺失或逾時;502 錯誤通常表示代理無法連線到 Collabora 上游伺服器。這些只是線索,並非最終診斷,因此請將其與 Collabora 自身的日誌進行比較。
WOPI(網路應用程式開放平台介面)是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 允許清單。它限制了哪些 Collabora 伺服器 IP 位址可以從 Nextcloud 請求文件。請新增 Nextcloud 實際看到的 Collabora 伺服器來源 IP 位址,當使用 Docker 網路或反向代理時,該 IP 位址可能會有所不同。請勿0.0.0.0為了消除錯誤而新增或停用此限制:Nextcloud 建議將 WOPI 請求限制在預期的 Collabora 伺服器位址範圍內。
從使用者瀏覽器和 Nextcloud 伺服器重新測試:發現和功能端點應有回應,Nextcloud 應能存取其配置的 Collabora URL,Collabora 應能存取 Nextcloud 的狀態端點。然後開啟一個小型測試文件。如果仍然失敗,請記錄時間戳記、受影響的文件操作、代理程式日誌中的 HTTP 或 WebSocket 狀態,以及對應的 Nextcloud 和 Collabora 日誌條目。這些資訊有助於區分網路路徑故障和 WOPI 授權問題。
在程式碼中允許確切的 Nextcloud 或其他 WOPI 來源,然後驗證活動主機允許列表,並將其與 Nextcloud 的來源 IP 限制區分開來。
追蹤 Collabora 的瀏覽器、WOPI 和 WebSocket 連接,找出文件無法開啟的原因,然後套用與您的 Nextcloud 設定相符的修復程式。
使用 Helm 部署 Collabora CODE 副本,透過 WOPI 親和性將每個文件保持在一個 pod 中,並驗證入口、節點放置和 Nextcloud 編輯。
從瀏覽器到 coolwsd 追蹤失敗的套接字握手,然後將反向代理路由與您的 Collabora 版本進行匹配,包括 CODE 26.04 Apache 變更。
追蹤 Collabora WOPI 證明失敗的原因,例如金鑰不匹配、發現資料過時、時脈漂移或代理 URL 變更——而不會削弱驗證。
重置瀏覽器縮放,測試乾淨的會話,並確定何時格式錯誤的選單大小需要 Collabora 伺服器更新。
使用 Docker 部署 Collabora CODE,將其安全地連接到 Nextcloud Office,並透過實際的 WOPI 和代理檢查來驗證文件編輯。
暫時將 coolwsd 提升到偵錯模式,擷取一次開啟失敗的情況,並使用日誌序列來區分 WebSocket、WOPI、代理程式和容器問題。
設定 Collabora Online 管理員登入(適用於 Docker 或 Linux),重新啟動對應的服務,並在不洩漏密碼的情況下驗證新密碼。
在變更 Collabora 設定或重新啟動服務之前,請先確定 CPU 負載是來自活動文件、空閒工作程序或伺服器容量。