如何設定 Jitsi Videobridge 以適應大規模多伺服器環境

新增 Jitsi Videobridge (JVB) 伺服器是提升單一 Jitsi Meet 部署媒體容量的常用方法。將 Web 服務、Prosody 和 Jicofo 服務保留在現有的 Meet 主機上,然後新增獨立的橋接伺服器,這些伺服器註冊到同一個 Prosody 橋接發現房間。之後,Jicofo 可以將新的會議安排到可用的橋接伺服器上。在這種基本設計中,會議參與者使用選定的橋接伺服器;即使部署中包含多個 JVB 伺服器,也不需要 Octo。

本指南遵循 Jitsi 手冊中基於 Debian/Ubuntu 軟體包的可擴展部署方案,該方案於 2026 年 10 月 6 日更新。特定的軟體包依賴關係和產生的配置可能會因發行版、Jitsi 軟體包版本以及伺服器的安裝方式(例如使用 Docker 或其他方式)而異。請使用與您現有部署相符的官方安裝指南。

了解 Jitsi 中的「多伺服器」是什麼意思

已驗證:單一 Jitsi Meet 安裝可以使用多個 Videobridge。 Jicofo 會監控這些 Videobridge,並將新會議分配給相應的 Videobridge。 Jitsi 手冊中的簡化範例將 Meet 服務部署在一台伺服器上,並將三個 JVB 部署在不同的伺服器上。每個 Videobridge 都必須能夠被會議參與者存取(用於媒體傳輸)以及被 Meet 基礎架構存取(用於訊號傳輸)。

常見誤解:「我需要在 JVB 前面放置負載平衡器。」在文件中記錄的多橋設計中,Jicofo 會選擇一個橋接器;用戶端隨後會將媒體傳送到該橋接器。在 UDP 媒體前面放置一個通用的 HTTP 負載平衡器並不能取代橋接器發現或會議建立。操作:將每個 JVB 新增至 Prosody/Jicofo 橋接器池中,並發布其可達的媒體位址。不要將每個橋接器的媒體流量都指向同一個任意的 UDP VIP。

常見誤解:「增加網橋數量就能讓一個會議自動跨越所有伺服器。」在基本設定中,Jicofo 會將會議分配給一個網橋。要將一個會議的參與者分散到不同的區域或網橋,需要使用名為 Octo(在目前 JVB 文件中稱為安全中繼)的獨立中繼拓撲結構。建議:如果目標是增加並發會議數量,請先使用普通的網橋池;只有當一個會議必須使用多個位置的網橋,或需要這種中繼行為時,才考慮使用 Octo。

安裝前先規劃好橋池

為每個 JVB 選擇一個公開且穩定的主機名稱或位址。當設定使用 XMPP MUC 存在時,請為每個虛擬機器指派唯一的作業系統識別碼和唯一的 JVB 實例別名。所有網橋都應能夠存取相同的 Prosody 服務和網橋 Brewery Room。保持版本一致:Jicofo 不會在同一會議中混合使用不同版本的網橋,並且當前中繼文件對 Octo 也重申了這一限制。

小路使用它它增加了什麼
多個 JVB,一個區域您需要更多容量來同時召開多個會議。橋接器安裝、註冊、網路存取和驗證。
Octo 跨區域中繼一場會議需要多個地區的參與者或媒體橋樑。中繼身分和區域設定、Colibri WebSocket 連線、Jicofo 策略以及正確的用戶端區域資訊。

取決於您的環境:沒有統一的虛擬機器參與人數上限。 Jitsi 的需求文件強調網路容量和工作負載,而非單一的固定數量。編解碼器、解析度、同步廣播、資料包速率、並發會議數以及提供者頻寬都會影響容量。建議:先建立實際工作負載的基準線,然後每次新增一個網橋,並觀察 CPU 使用率、網路吞吐量、丟包率和會議品質。

逐步配置多個 JVB 伺服器

1. 確認現有 Meet 主機運作正常

在新增設備前,請先驗證現有 Meet 頁面是否已載入正常、Prosody 和 Jicofo 是否正在運行,以及測試通話是否能透過目前橋接器成功完成。記錄 Jitsi 軟體包版本。即使網路正常,核心伺服器上的訊號或憑證設定錯誤也會導致新橋接器顯示設定錯誤。

在 Debian/Ubuntu 軟體包安裝中,使用命令檢查服務systemctl status prosody jicofo jitsi-videobridge2並查看服務日誌。請使用安裝中存在的服務名稱;容器化部署會暴露不同的命令和日誌位置。

2. 準備 DNS、路由和防火牆規則

為每個網橋分配獨立的公網位址或正確配置一對一NAT對映。可擴展設定指南列出了以下典型路徑:公網用戶端透過TCP 80/443連接埠存取Web主機;JVB伺服器透過TCP 5222連接埠存取Prosody;用戶端透過UDP 10000連接埠存取各個Videobridge以傳輸媒體檔案。 TCP 80連接埠通常用於憑證或重定向設置,而生產環境的Meet站點應使用HTTPS。

  • 允許從您的服務支援的參與者網路向每個網橋發送入站 UDP 10000 封包。
  • 允許 JVB 主機透過 TCP 5222 連接埠橋接到 Prosody,並在防火牆允許的情況下將其限制在這些主機上。
  • 盡可能將 Prosody/XMPP 服務限制在目標基礎架構內。
  • 請勿公開 JVB 私有 HTTP/偵錯端點。如果您啟用或代理公共 Colibri WebSocket 端點,請遵循針對該部署的最新 JVB 和反向代理文件。

這取決於您的網路: NAT、雲端安全群組、IPv6、TURN 以及限制性強的企業網路可能需要額外的候選連接埠或路徑。預設連接埠清單並不能證明媒體能夠通過您的特定防火牆。操作:檢查從外部用戶端網路到每個公共橋接位址的封包流,並測試實際呼叫;僅憑成功的 XMPP 連線並不能驗證 UDP 媒體。

3. 在每個節點上安裝相同的 Jitsi Videobridge 軟體包

使用與 Meet 主機發行版相符的 Jitsi 軟體倉庫和軟體包安裝說明。在每個新的 Debian/Ubuntu 節點上,jitsi-videobridge2按照官方可擴展設定指南的指示,使用 Meet 主機名稱安裝並完成軟體包配置。手冊指出,對於其文件中記錄的基於軟體包的設置,安裝後橋接器無需進行任何額外的更改,只需使用預設設定即可。

除非您有意要部署獨立的 Meet 服務,否則不要在每個橋接器上都安裝完整的第二組 Jitsi Meet 服務棧。對於橋接器池,請將 Web、Prosody 和 Jicofo 角色保留在核心主機上,並將 JVB 服務新增至其他機器。確保池內所有服務都使用相同的支援 JVB 版本;分階段進行升級,避免混合版本池長時間存在。

4. 核實橋樑登記資訊和身份

在基於軟體包的設定中,首先讓官方軟體包配置產生預期設定。 JVB 需要連接到 Prosody,並向 Jicofo 監控的相同 Brewery MUC 通告橋接狀態。如果您使用的是目前的 XMPP 用戶端設定路徑,JVB 文件會在 `<path>` 和 `<path>` 下顯示相關部分videobridge.stats;videobridge.apis.xmpp-client.configsJicofo 必須使用 `<command>` 加入對應的 Brewery jicofo.bridge.brewery-jid。

典型的現代配置如下所示;請將所有範例值替換為您實際安裝中的值,並保護共用金鑰:

videobridge {
  stats {
    enabled = true
    transports = [{ type = "muc" }]
  }
  apis {
    xmpp-client {
      configs {
        xmpp-server-1 {
          hostname = "meet.example.com"
          domain = "auth.meet.example.com"
          username = "jvb"
          password = "REPLACE_WITH_SECRET"
          muc_jids = "JvbBrewery@internal.auth.meet.example.com"
          muc_nickname = "bridge-01"
        }
      }
    }
  }
}

每個橋接器使用不同的別名muc_nickname(例如,`1`bridge-02和 `2` bridge-03)。 JVB 專案警告稱,別名在不同實例中必須唯一。特定的設定檔名以及是否需要此明確設定區塊取決於您的軟體包和現有設定;請避免在未查閱已安裝版本的文件的情況下,將手寫的現代配置覆蓋在產生的舊版軟體包設定之上。

5. 啟動服務並檢查日誌

在每台新主機上重新啟動或啟動 JVB,然後檢查它是否保持活動狀態並連接到 Prosody。可擴展設定指南建議檢查 Prosody 和 Jicofo 日誌,以確認橋接連接以及 Jicofo 是否發現橋接。如果某個橋接未出現,請按以下順序檢查:DNS 解析和 TCP 5222 連接埠可及性;XMPP 憑證和網域名稱;啤酒廠 MUC 拼字是否準確;暱稱是否重複;以及 JVB/Jicofo 版本相容性。

6. 對每條橋接器執行外部媒體測試

啟動幾個新的測試會議,並確認 Jicofo 會隨著時間的推移將它們分配到可用橋接器池中。預期會有一個會議落在某個橋接器上;這並不表示負載平衡失敗。如果已啟用 Jicofo 的偵錯介面並設定了存取權限限制,請使用該介面檢查可用橋接器和活動會議。 JVB 文件提供curl http://localhost:8888/debug了一個本地偵錯範例;請使用 bind 或防火牆保護診斷介面的隱私。

使用伺服器網路以外的客戶端進行測試。確認音訊和視訊功能正常後,檢查所選橋接位址和UDP流量。如果某個橋接出現在Jicofo中,但僅在選擇該橋接時通話失敗,請檢查其公網位址、NAT映射、UDP防火牆以及已通告的候選橋接。維護期間,僅可透過已安裝版本支援的卸載或部署流程來停止使用某個橋接;重啟正在使用的橋接可能會中斷指派給它的會議。

何時應該啟用 Octo?

當單一會議需要使用多個網橋時,Octo 是一個合適的選擇,尤其是在與會者分佈於不同地區的情況下。但對於普通容量的 JVB 會議來說,Octo 並非必要條件。目前的 JVB 中繼文件要求在每個參與的網橋上配置中繼,使用 Colibri WebSocket 實現網橋間的連接,並採用合適的 Jicofo 橋接器選擇策略。此外,區域感知功能還取決於是否向會議配置提供準確的客戶端區域資訊。

中繼配置包含relay-id每個網橋的唯一位址和區域,而 Jicofo 啟用 Octo 並選擇特定政策RegionBasedBridgeSelectionStrategy。中繼 WebSocket 端點也需要正確地透過代理程式進行路由。這些設定會因版本和拓撲結構而異,因此請遵循最新的中繼指南,並在部署前驗證代理路徑的準確性。

操作:對於簡單的單區域橋接池,請停用 Octo。如果您需要多區域配置,請在測試環境中使用文件中記錄的分割策略進行測試,檢查 Jicofo 的橋接選擇器和會議狀態,然後配置用戶端區域和基於區域的選擇。在確定客戶端將如何接收匹配的區域元資料之前,請勿設定區域標籤。

擴展過程中需要監控哪些面向?

  • 網路:出站和入站吞吐量、丟包率、抖動,以及 UDP 10000 是否可從實際客戶端網路存取。
  • 主機壓力: CPU、記憶體、JVM 健康狀況和持續資料包速率。規模以代表性會議為單位,而非假定的通用呼叫次數。
  • 池成員資格: Jicofo 中的橋接存在性、版本一致性以及新建立的會議是否可以落到每個節點上。
  • 參與者體驗:在預期的峰值並發情況下,音訊連續性、視訊卡頓、重新連接和品質。

如果使用者僅在一個 JVB 節點上報告問題,請在擴展整個叢集之前,將該節點的網路路徑和配置與正常工作的對等節點進行比較。如果所有網橋同時效能下降,則瓶頸可能在於共享頻寬、核心訊號服務或參與網路。只有當新增網橋可獨立存取、已正確註冊,並且在實際測試中能夠顯著降低負載時,擴展才能有效。

官方參考資料

留下評論

如何在樹莓派 4 上使用 Conduit 設定 Matrix 伺服器

如何在樹莓派 4 上使用 Conduit 設定 Matrix 伺服器

在 Raspberry Pi 4 上建立一個輕量級的 Matrix 家庭伺服器,包含 Conduit、Docker、NGINX、HTTPS、註冊控制、聯合身份驗證和檢查功能。

如何設定 Jitsi Videobridge 以適應大規模多伺服器環境

如何設定 Jitsi Videobridge 以適應大規模多伺服器環境

將 Jitsi Videobridge 伺服器新增到共用的 Jitsi Meet 部署中,配置註冊和防火牆訪問,驗證橋接選擇,並了解何時需要 Octo。

如何在 Zimbra 伺服器上安裝商業 SSL 憑證

如何在 Zimbra 伺服器上安裝商業 SSL 憑證

在 Zimbra 上安全地安裝商業 SSL 憑證:建立 CSR、建置 CA 鏈、驗證金鑰和憑證、部署、重新啟動服務並確認 HTTPS。

如何自訂 BigBlueButton 介面和徽標

如何自訂 BigBlueButton 介面和徽標

更改預設的 BigBlueButton 徽標,為單一會議添加徽標,並了解何時更廣泛的介面品牌化需要自訂客戶端建置。

如何安全地清除 Zimbra 稽核日誌以釋放磁碟空間

如何安全地清除 Zimbra 稽核日誌以釋放磁碟空間

了解如何識別、歸檔、壓縮和刪除舊的 Zimbra 稽核日誌,何時避免截斷 audit.log,以及如何驗證磁碟空間和日誌記錄是否正確復原。

修復 Kopano Dagent “無法連接到儲存伺服器”錯誤

修復 Kopano Dagent “無法連接到儲存伺服器”錯誤

透過檢查伺服器狀態、伺服器套接字、Unix 套接字權限、遠端監聽器和受控交付測試來排查 Kopano dagent 儲存伺服器連線故障。

如何修復 ownCloud 檔案鎖定「鎖定機制逾時」錯誤

如何修復 ownCloud 檔案鎖定「鎖定機制逾時」錯誤

透過識別事務鎖、將鎖定儲存遷移到 Redis、檢查叢集並安全地重新測試來修復 ownCloud 檔案鎖定逾時錯誤。

如何解決 Matrix Synapse 在同步過程中記憶體不足的問題

如何解決 Matrix Synapse 在同步過程中記憶體不足的問題

透過檢查記憶體壓力、仔細調整快取、隔離初始同步以及監控工作進程來排查 Matrix Synapse 在 /sync 期間的 OOM 問題。

如何在 Nextcloud 中啟用伺服器端加密而不明顯影響效能

如何在 Nextcloud 中啟用伺服器端加密而不明顯影響效能

使用主金鑰模式、APCu、Redis 或 Valkey 鎖定,安全地啟用 Nextcloud 伺服器端加密,並採取可最大限度減少效能影響的穩定推廣措施。

修復矩陣房間管理中的“M_FORBIDDEN:您沒有權限”錯誤

修復矩陣房間管理中的“M_FORBIDDEN:您沒有權限”錯誤

透過檢查成員資格、權限等級、目標使用者等級和 Synapse 伺服器管理員復原選項(例如 make_room_admin)來修復 Matrix M_FORBIDDEN 房間管理員錯誤。