一,準備工作
- 準備作業系統 Ubuntu 18.04 以上的 Server (無UI),或 Desktop (有圖形UI,但容量大)。
- 安裝並開啟 ssh:Desktop 版本才需要安裝 SSH server,Server 版本已經有了。在命令列輸入 #sudo apt-get install ssh,這樣我們便可從遠端 SSH-client 連線進入作業系統操作了。
- 設定系統 DNS:/etc/resolv.conf裡面要新增 DNS 服務器,如 nameserver x.x.x.x,這樣之後我們在更新軟體套件時才不會出錯。或者,修改 /etc/netplan/xxxx-init.yaml 檔案的內容,重新設定網路參數,這樣也行。
二,安裝 Jitsi Meet 服務器
- 設定域名:到 DNS 註冊一個機器的域名對應到公網 IP 位址,比如在公網輸入meeting.jitsi.tw 便會指向安裝的服務器。不過,在測試階段,我們可以考慮架設一台本地DNS server (用Windows 2008/2012/2016...的環境),配置一個內部的域名,這樣暫時不用註冊一個公共的域名。
- 設定服務器的主機名稱:修改 Linux 系統的 /etc/hostname內容,或者命令列 #sudo hostnamectl set-hostname meeting,這樣機器在網上能被其他電腦用名稱來訪問了。
- 開啟防火牆:利用 ufw 命令開啟下列的埠,TCP 80 (http)、443 (https)、4443 (video/audio)、22 (SSH),以及 UDP 10000 (video/audio)。例如命令列 #sudo ufw allow 80/tcp,再把 ufw 啟動。
- 安裝過程:
a) 命令列 #sudo apt-add-repository universe:由社群維護的軟體庫新增到系統的更新列表上,基本上 OS 系統已經有預設了。
b) 安裝 apt-transport-https:這是 HTTP over TLS。
c) gnupg2:這是 OpenPGP 工具 ,方便檔案加密,如果沒有安裝這工具,Jitsi Meet 將無法下載安裝。
d) Ngnix: 安裝這是 web server。
e) 最後, 開始安裝 Jitsi-Meet。把 jitsi-meet 加進軟體庫倉庫裡,命令如下,
# echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add
f) 直接安裝套件 #sudo apt install jitsi-meet,此時也會一起安裝相關聯的函式庫。過程中,需要填寫 host 域名,如果還沒有註冊 DNS 名,也要填個本機 IP 當域名,如果不填的話 (空白),之後服務器會出錯。
上面的安裝過程是由系統自動安裝 Jitsi Meet,所以各個模組的安裝與配置都自動產生。如果我們要針對每個模組一一手動安裝,首先必從 Prosody 和 Nginx 模組開始,同時將它們的配置檔案也一併設定好。接著,才能安裝 Jitsi 的模組:Jitsi VideoBridge 和 Jicofo。
三,Jitsi Meet 系統架構
下圖所示為 Jitsi Meet 系統的架構圖,圖中紅色標示為 Jitsi Meet 的核心 (Web, JVB, Jicofo)。然而 Nginx 和 Prosody 屬於外部的模組,Nginx 是一個 web 服務器,負責顯示 Jitsi Meet 系統的使用者介面;Prosody 是一個 XMPP 服務器,負責系統內部各個模組間訊息的傳遞,模組要先登錄這個 XMPP 服務器,才能進行訊息傳遞,參數設定如下。
| 圖一:系統方塊圖 |
打開 /etc/prosody/conf.avail 底下的配置檔案,XMPP server 给 Jitsi Meet 內部模組用來登錄參數,部分內容如下:(這裡測試時使用的域名為 meeting.jitsi.tw)
-- internal muc component
Component "internal.auth.meeting.jitsi.tw" "muc"
storage = "none"
modules_enabled = {
"ping";
}
admins = { "focus@auth.meeting.jitsi.tw", "jvb@auth.meeting.jitsi.tw" }
muc_room_locking = false
muc_room_default_public_jids = true
VirtualHost "auth.meeting.jitsi.tw"
ssl = {
key = "/etc/prosody/certs/auth.meeting.jitsi.tw.key";
certificate = "/etc/prosody/certs/auth.meeting.jitsi.tw.crt";
}
authentication = "internal_plain"
Jitsi Meet服務器運作時所產生的日誌文件會依據每個模組分別存放在機器的 /var/log/nginx、/var/log/prosody、/var/log/jitsi/ 目錄底下,當我們操作視訊會議時遇到問題,可以先從日誌開始分析。
文章標籤
全站熱搜

https://han-ya.blogspot.com/2020/06/jitsi-meet-server.html