透過匹配主機來源來修復 CODE 的 WOPI 主機檢查
在程式碼中允許確切的 Nextcloud 或其他 WOPI 來源,然後驗證活動主機允許列表,並將其與 Nextcloud 的來源 IP 限制區分開來。
當 Collabora Online 報告套接字連線意外關閉時,首先檢查瀏覽器發出的 WebSocket 請求是否coolwsd透過反向代理到達。將代理路由與 Collabora 版本相匹配,保留 WebSocket 升級和 URL 路徑,然後測試一個文檔,同時觀察瀏覽器的網路面板和伺服器日誌。如果問題出現在 Apache 伺服器後升級到 CODE 26.04 版本之後,請先ProxyPass檢查 Apache 規則:Collabora 26.04 版本說明中提到了精簡 WebSocket URL 的變更。
WebSocket 是 Collabora 在文件開啟期間,瀏覽器與其伺服器之間建立的長期雙向連線。反向代理是接收公共請求並將其轉發給 Collabora 的服務。錯誤訊息指向該連接,但這並不能證明反向代理是導致問題的原因;被拒絕的 WOPI 主機、錯誤的公共 URL、TLS 不匹配或錯誤的後端也可能導致會話中斷。

記下 Collabora 版本或鏡像標籤、代理軟體、Collabora 公共主機名,以及 TLS 連線終止於代理伺服器或 Collabora 伺服器。在不更改部署的情況下,檢查服務名稱和目前鏡像:
docker compose ps collabora
docker compose images collabora
替換collabora為 Compose 檔案中的服務名稱。對於非 Compose 容器,請使用 ` <container-name>`docker ps和docker inspect`<image-name>` 來識別容器和鏡像。不要假設 ` latest<version>` 標籤仍然指向您上週測試的版本。
在瀏覽器中,開啟開發者工具,選擇「網路」,篩選WS或 WebSocket,然後重試開啟一個文件。如果公共頁面使用 HTTPS,則應使用請求 URL wss://。選擇失敗的請求,並記下其狀態、URL 路徑和回應頭。成功的握手通常會傳回結果101 Switching Protocols,並在文件會話處於活動狀態時保持開啟狀態。

coolwsd並提示“無效或未知請求”,則可能表示 Collabora 收到的請求路徑不被接受。請使用 Collabora 目前針對您使用的代理軟體及其版本的反向代理設定。檢查 WebSocket 路由是否正確處理,代理是否轉送升級標頭,以及代理是否保留路徑和編碼後的查詢字串,而不是重定向或重寫它們。此外,代理程式傳送的公共主機和協定必須與 Collabora 配置的外部伺服器名稱和 TLS 終止設定保持一致。
對於 Nginx,請查看Collabora 目前範例中WebSocket 的特定位置及其 HTTP/1.1、`http://localhost:8000`Upgrade和轉送指令。對於 Apache,請將規則和順序與目前範例進行比較;切勿在未檢查已安裝版本目前請求的情況下直接貼上舊的符合項目。ConnectionProxyPass/cool/…/ws
此版本檢查對 CODE 26.04 至關重要。 Collabora 於 2026 年 6 月 8 日發布的發行說明中提到了一個更簡潔的 WebSocket URL,並指出 Apache 反向代理用戶需要進行相應的調整ProxyPass。 26.04 的後續工作為舊版 URL 新增了回退機制,因此舊規則可能仍然適用於某些版本;Collabora 的 26.04 WebSocket 問題報告對此進行了詳細說明。此回退機制並不能取代將目前代理程式配置與已安裝版本進行配對。請同時閱讀CODE 26.04 的發行說明和更新後的 SDK 範例。

在重試文件之前,先啟動一個簡短的日誌流。 Docker 的--since選項限制了初始輸出,而--follow串流輸出則換行;請參閱Docker Compose 日誌參考。
docker compose logs --since=2m --follow collabora
記錄測試時間,並在 Collabora 和代理日誌中找到相同的請求。如果瀏覽器要求的路徑被代理程式路由到錯誤的後端,則僅使用 Collabora 的版本匹配範例更新該 WebSocket 路由。如果請求到達 Collabora 但主機、來源或協定被拒絕,請將公共主機名稱和連接埠與配置的伺服器名稱和轉送的標頭進行比較。如果日誌顯示 WOPI 主機被拒絕或文件資訊請求失敗,請檢查整合伺服器的允許主機及其從 Collabora 容器的可及性;這與瀏覽器 WebSocket 握手是不同的步驟。
使用代理本身的語法檢查指令驗證其配置後,重新載入代理程式。避免同時更改 TLS 終止、主機允許清單和 URL 重寫:每次測試只更改一個原因,才能使後續結果可解釋。不要為了圖方便而關閉 TLS 驗證或允許所有 WOPI 主機。
重試同一文件。在開發者工具中,確認其 WebSocket 請求已返回101 Switching Protocols並保持開啟。確認文件已完成載入、連線保持正常,並且能夠成功儲存少量編輯內容。如果 WOPI 檔案存取或保存仍然失敗,僅連線狀態正常是不夠的。

如果握手仍然失敗,請比較瀏覽器請求路徑、代理存取/錯誤訊息以及coolwsd相同時間戳記的匹配日誌條目。這三點比較可以幫助確定下一步應該調查的物件是瀏覽器、代理程式、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 負載是來自活動文件、空閒工作程序或伺服器容量。