jitsi-videobridge负载均衡搭建

写在前面

如果我们使用官方教程快速安装了jitsi(包含jitsi-meet,prosody,jitsi-videobridge,jicofo,nginx)。是的,环境搭建起来了,但是如果生产环境上面想多人使用,这个配置或者负载还是支撑不来多少的。官方推荐的方式有两种,一种就是简单的对jitsi-videobridge(以下简称jvb)做负载,一种就是使用proxy,将整个jitsi-meet开始负载。目前我们使用的是将jvb做负载。

使用jvb做负载有什么好处

之所以用jvb做负载,我们需要知道一点jitsi的基本知识:jitsi-meet,prosody,jvb,jicofo分别在jitsi中扮演什么角色?

jitsi-meet: 前端模块,nginx直接转发过来到jitsi-meet

prosody: xmpp协议服务器框架,jitsi是基于xmpp

jvb: 视频桥,负责所有视频在各个服务器中共享

jicofo: 负责房间管理

官网有介绍,我们如果需要有更多的音视频用户,需要将这几个数字调大:
vim /etc/systemd/system.conf

DefaultLimitNOFILE=65000 
DefaultLimitNPROC=65000 
DefaultTasksMax=65000

使其生效:
sudo systemctl daemon-reload
sudo systemctl restart jitsi-videobridge2
检查是否生效:

systemctl show --property DefaultLimitNPROC 
systemctl show --property DefaultLimitNOFILE 
systemctl show --property DefaultTasksMax

但是当我们有更多的音视频会议用户进来的时候,可能这个也不够,那么我们就需要使用多个jvb来负载均衡了

多个ubuntu18上安装jvb负载均衡

前提:你是基于官网教程快速安装
我以两台机器为例子,一台上面就是按照官方快速搭建,在一个机器上面安装了prosody,jicofo,jvb,nginx,jitsi-meet等机子,一下简称JMS,另外我们还需要一台干净的ubuntu18的机子,以下简称JVB机器

  • 首先,我们需要更新jvb补丁到最新版本
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 -
apt-get install apt-transport-https
apt update
apt upgrade
  • 在新的videobridge服务器JVB上设置防火墙
ufw status
ufw allow ssh
ufw allow 443/tcp
ufw allow 4443/tcp
ufw allow 10000:20000/udp
ufw enable
  • 第一个实例在JMS上运行的jitsi-meet服务器上设置防火墙
ufw allow 5222/tcp
ufw reload
  • 新的videobridge服务器JVB上安装jitsi-videobridge
apt -y install jitsi-videobridge2
  • 在JVB上进行安装期间,从jitsi-meet服务器(JMS)输入DNS名称

查看/etc/jitsi/videobridge/configJVB上的文件,它应该类似下面的情况(注意你并不需要编辑,只是确认到目前为止走对了没有):

# Jitsi Videobridge settings
# sets the XMPP domain (default: none)
JVB_HOSTNAME=
# sets the hostname of the XMPP server (default: domain if set, localhost otherwise)
JVB_HOST=
# sets the port of the XMPP server (default: 5275)
JVB_PORT=5347
# sets the shared secret used to authenticate to the XMPP server
JVB_SECRET=fg4t55z
# extra options to pass to the JVB daemon
JVB_OPTS="--apis=,"
# adds java system props that are passed to jvb (default are for home and logging config file)
JAVA_SYS_PROPS="-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=videobridge -Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi -Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties"
  • 将值从jitsi-meet服务器(JMS)复制到JVB服务器:

打开JMS的文件/etc/jitsi/videobridge/sip-communicator.properties,将所有内容复制到剪贴板,并将其粘贴到JVB服务器中的文件中/etc/jitsi/videobridge/sip-communicator.properties替换其中的所有其他文件,并且添加这个配置:org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
JVB上的内容应类似于:

org.jitsi.videobridge.DISABLE_TCP_HARVESTER=true
org.jitsi.videobridge.ENABLE_STATISTICS=true
org.jitsi.videobridge.STATISTICS_TRANSPORT=muc
org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=
org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.
org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb
org.jitsi.videobridge.xmpp.user.shard.PASSWORD=
org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.
org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=
org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
  • JMS服务器上的文件应该看起来几乎相同,仅与另一个MUC_NICKNAME不相同(可以将其保留在安装范围内,这很好)。

在JVB上重新启动videobridge-service,你应该一切顺利!

/etc/init.d/jitsi-videobridge2 restart
  • 查看记录是否一切正常。日志位于:
JVB: /var/log/jitsi/jvb.log
JMS: /var/log/jitsi/jvb.log 
     /var/log/jitsi/jicofo.log
  • 在jicofo-log中,应该可以看到连接桥:
Jicofo INFORMATION: [30] org.jitsi.jicofo.xmpp.BaseBrewery.processInstanceStatusChanged().329 Added brewery instance: jvb
[email protected]./
Jicofo INFORMATION: [30] org.jitsi.jicofo.bridge.BridgeSelector.log() Added videobridge: [email protected]./ v: null

到此,负载均衡jvb安装完毕

测试

要简单地测试安装,请关闭JMS Server上的视频桥,并检查您是否仍然可以连接到JitsiMeet并进行视频会议。Jicofo服务将自动使用可用的服务器。

/etc/init.d/jitsi-videobridge2 stop

这时已经停用了一个视频桥jvb,你进入你的视频会议去看是否还能够正常访问,如果搭建成功会可以正常访问的。
好了,测试完了记得将你关闭的视频桥再启动哦(有3个及以上个jvb也是同样的做法)

/etc/init.d/jitsi-videobridge2 start

最后原创不易,转载请注明来源https://segmentfault.com/a/11...

你可能感兴趣的:(jitsi,负载均衡,分布式,高可用)