透過匹配主機來源來修復 CODE 的 WOPI 主機檢查

當 Collabora Online CODE 報告「未授權的 WOPI 主機」時,請將實際的文件儲存主機(通常是您的 Nextcloud 來源站)新增至 CODE 的 WOPI 主機允許清單中。該主機必須與 CODE 在 WOPI 請求中收到的來源站匹配,而不是 Collabora 伺服器的公共 URL。在 Docker 中,通常使用aliasgroup1環境變數進行配置。

範例文件編輯器警告對話方塊顯示“未經授權的 WOPI 主機。請稍後再試。”
此警告指出 WOPI 主機授權檢查失敗。

拒絕的是哪個代碼?

WOPI 指的是 Web 應用程式開放平台接口,它是辦公伺服器透過儲存平台開啟和保存文件所使用的協定。 WOPI主機就是這個儲存平台,例如 Nextcloud。 CODE 會將 WOPI 請求中指定的主機與它所信任的主機進行比對。如果請求中指定的主機cloud.example.com與 CODE 配置為僅信任的主機不符office.example.com,則編輯器可以在會話開啟之前拒絕該會話。

對於自架環境,請求中的主機名稱可能是內部 Docker 名稱(例如 `/etc/docker/docker/docker/docker/docker`),nextcloud而不是瀏覽器端的主機名稱。反向代理、不同的連接埠或單獨的公網和內網 URL 也可能導致來源位址不同。請配置請求實際使用的主機名,而不是看似「主」伺服器名稱的主機名。

找到主機代碼被拒絕的原因

  1. 重現故障一次,然後檢查故障發生前後 CODE 容器的日誌。使用 Docker Compose 執行 `docker build` 指令,並將 `<service_name> docker compose logs --since=10m collabora` 替換collabora為您的服務名稱。
  2. 尋找類似這樣的訊息No acceptable WOPI hosts found matching the target host [cloud.example.com] in config。記錄括號中顯示的目標主機。請勿複製或共用完整的 WOPI URL:它可能包含有效期很短的存取權杖。
  3. 將此主機名稱和協定與儲存體整合到 CODE 發布的 URL 進行比較。 Nextcloud 的故障排除指南建議檢查配置的 URL 是否為 Nextcloud URL,以及 CODE 是否可以存取該 URL。檢查WOPISrc整合日誌中是否包含主機名,同時務必對任何查詢字串令牌保密。
終端視窗顯示範例日誌模式:未找到與設定中的目標主機 [cloud.example.com] 相符的可接受的 WOPI 主機。
括號內的目標主機是要與 CODE 配置的 WOPI 主機進行比較的值;這是一個示例性的日誌模式。

允許代碼來源正確。

對於官方 CODE Docker 映像,請設定aliasgroup1為確切的受信任 WOPI 來源。對於單一 Nextcloud 安裝,Compose 服務可以包含:

services:
  collabora:
    image: collabora/code
    environment:
      aliasgroup1: "https://cloud.example.com:443"

請將範例替換為您真實的 Nextcloud 主機以及 WOPI 請求使用的協定和連接埠。請保留 Compose 檔案中現有的鏡像標籤、管理員設定、網路和其他服務選項。範例使用連接埠 443 的 HTTPS 來源;不同的部署可能使用其他連接埠或內部來源。

YAML 編輯器顯示 aliasgroup1 設定為範例 Nextcloud 來源 https://cloud.example.com:443。
對於單一 Nextcloud 來源,CODE 的 Docker 別名群組 1 應與 WOPI 請求中使用的主機相符。

編輯 Compose 檔案後,重新建立 CODE 容器,使其接收更新後的環境:

docker compose up -d --force-recreate collabora

請使用您實際的 Compose 服務名稱來取代 `<service_name>` collabora。簡單的重新啟動可能無法載入已變更的容器環境值;重新建立服務才能套用更新後的設定。如果您透過 XML 檔案配置 CODE,請檢查storage.wopi有效配置中的別名群組。官方 Collabora SDK 手冊中記錄了 Docker 別名群組和 WOPI 主機別名;請遵循您執行的 CODE 版本的語法。

保持兩個允許列表分開

Collabora 和 Nextcloud 都可以強制執行與 WOPI 相關的限制,但它們回答的問題卻不同:

環境它檢查什麼典型校正
代碼 WOPI 主機允許清單 ( aliasgroup1)CODE 在 WOPI 請求中接受哪個儲存主機名允許將實際的 Nextcloud 來源傳送到程式碼
Nextcloud “WOPI 請求允許清單”哪些來源 IP 位址可以向 Nextcloud 發送 WOPI 請求允許 Nextcloud 識別的 CODE 容器或代理的位址
Nextcloud 管理設定頁面範例,顯示了「辦公室」部分和「WOPI 請求允許清單」輸入框。
Nextcloud 的這項獨立設定限制了允許發送 WOPI 請求的來源位址;它不是 CODE 的受信任 WOPI 主機名稱清單。

更改 Nextcloud 的來源 IP 允許清單並不能解決 CODE 拒絕主機名稱的問題。反之,將主機名稱加入 CODE 也不會授權 Nextcloud 使用 CODE 的來源 IP。 Nextcloud 的文件建議將 WOPI 請求限制在 Collabora 伺服器的 IP 位址;使用 Nextcloud 偵測到的位址,該位址在涉及容器或反向代理程式時可能會有所不同。

事件結束前快速檢查

  • Target 表示cloud.example.com:允許 Nextcloud 主機和程式碼中的對應來源。
  • Target 表示nextcloud: CODE 可能正在接收 Docker 網路主機名稱;確定該內部來源是否為預期來源,然後配置相應的受信任主機並確保 DNS/網路可及性。
  • 目標匹配,但仍出現相同的拒絕:確認編輯後的變數屬於正在執行的 CODE 服務,Compose 已重新建立容器,並且沒有後續的環境或 XML 配置覆蓋該設定。
  • 日誌中出現 DNS、TLS、逾時或 CheckFileInfo 失敗的記錄:主機授權檢查可能已通過。請檢查名稱解析、證書信任、路由或儲存整合的文件資訊回應,而不是擴展 WOPI 主機清單。
  • Nextcloud 報告未經授權的請求位址:請檢查 Nextcloud 的來源 IP 允許清單和它實際看到的用戶端 IP。

在生產環境中,切勿透過信任所有主機或使用不受限制的通配符來解決不匹配問題。請將允許清單限制在已知的儲存來源範圍內。如果確實需要多個儲存主機,請根據已安裝的 CODE 版本配置文件中記錄的別名組,而不是猜測通配符的行為。

驗證修復是否成功

透過先前失敗的 Nextcloud 整合開啟文件。然後檢查最新的 CODE 日誌:「沒有可接受的 WOPI 主機」的錯誤應該已經消失。確認文件可以載入並儲存;如果出現新的錯誤,請根據錯誤訊息確定下一步操作。關於兩次主機檢查和 Nextcloud 故障排除流程,請參閱Nextcloud Office 故障排除和Nextcloud Office 設定。關於 CODE Docker 別名組,請參閱Collabora Online SDK 25.04 手冊;如果您的配置不同,請使用與您安裝的版本相符的文件。

留下評論

透過匹配主機來源來修復 CODE 的 WOPI 主機檢查

透過匹配主機來源來修復 CODE 的 WOPI 主機檢查

在程式碼中允許確切的 Nextcloud 或其他 WOPI 來源,然後驗證活動主機允許列表,並將其與 Nextcloud 的來源 IP 限制區分開來。

解決 Collabora 的“好吧,這太尷尬了”錯誤

解決 Collabora 的“好吧,這太尷尬了”錯誤

追蹤 Collabora 的瀏覽器、WOPI 和 WebSocket 連接,找出文件無法開啟的原因,然後套用與您的 Nextcloud 設定相符的修復程式。

在 Kubernetes 節點上執行 Collabora Online

在 Kubernetes 節點上執行 Collabora Online

使用 Helm 部署 Collabora CODE 副本,透過 WOPI 親和性將每個文件保持在一個 pod 中,並驗證入口、節點放置和 Nextcloud 編輯。

透過代理程式恢復 Collabora 的 WebSocket 連接

透過代理程式恢復 Collabora 的 WebSocket 連接

從瀏覽器到 coolwsd 追蹤失敗的套接字握手,然後將反向代理路由與您的 Collabora 版本進行匹配,包括 CODE 26.04 Apache 變更。

透過檢查金鑰、發現和 URL 來修復 WOPI 驗證錯誤

透過檢查金鑰、發現和 URL 來修復 WOPI 驗證錯誤

追蹤 Collabora WOPI 證明失敗的原因,例如金鑰不匹配、發現資料過時、時脈漂移或代理 URL 變更——而不會削弱驗證。

修正 Collabora Online 字體大小下拉選單顯示錯誤的問題

修正 Collabora Online 字體大小下拉選單顯示錯誤的問題

重置瀏覽器縮放,測試乾淨的會話,並確定何時格式錯誤的選單大小需要 Collabora 伺服器更新。

將 Nextcloud 連接到自託管的 Collabora CODE 容器

將 Nextcloud 連接到自託管的 Collabora CODE 容器

使用 Docker 部署 Collabora CODE,將其安全地連接到 Nextcloud Office,並透過實際的 WOPI 和代理檢查來驗證文件編輯。

使用 coolwsd 日誌追蹤 Collabora 連線失敗

使用 coolwsd 日誌追蹤 Collabora 連線失敗

暫時將 coolwsd 提升到偵錯模式,擷取一次開啟失敗的情況,並使用日誌序列來區分 WebSocket、WOPI、代理程式和容器問題。

為 Collabora 管理控制台設定安全密碼

為 Collabora 管理控制台設定安全密碼

設定 Collabora Online 管理員登入(適用於 Docker 或 Linux),重新啟動對應的服務,並在不洩漏密碼的情況下驗證新密碼。

使用 Collabora 的 coolwsd 或 loolwsd 診斷 CPU 使用率過高問題

使用 Collabora 的 coolwsd 或 loolwsd 診斷 CPU 使用率過高問題

在變更 Collabora 設定或重新啟動服務之前,請先確定 CPU 負載是來自活動文件、空閒工作程序或伺服器容量。