在公⽹部署PION-ION实时⾳视频通话(含腾讯免费云服务器申请使⽤教程)腾讯云服务免费获取
⾸次申请需要实名认证,扫即可。稍等⼀段时间会建⽴好服务器,先进⼊后台重置⼀下密码,这样就可以远程登录了。
1元钱购域名+云解析+SSL证书活动
不弄域名的话不能启⽤https访问的功能。
本项⽬使⽤caddy服务器,跟上⾯还不太⼀样,对应安装⽅法见后⾯章节。
在访问服务器之前设置⼀下腾讯云的防⽕墙规则,暴露全部端⼝⽅便调试(这⾥只是为了确保能访问,这样很危险,⽣产环境不要这样)
调试结束后只保留默认的端⼝即可,即tcp的80和443,udp的5300-5500(这是我的sfu暴露出来的端⼝,也是l定义的)
云服务器安装docker
Docker 软件包已经包括在默认的 CentOS-Extras 软件源⾥。因此想要安装 docker,只需要运⾏下⾯的 yum 命令(炒鸡快啊啊啊):
yum install docker-io -y免费网站怎么申请
直接yum安装,安装成功后查看版本
docker -v
启动docker
systemctl enable docker
service docker start
设置开机启动
chkconfig docker on
因为 Docker 的默认源不在国内,导致拉取镜像时时常会很慢。于是,我们可以添加镜像加速器。
编辑并覆盖以下内容到
{
"registry-mirrors": ["registry.docker-cn"]
}
安装docker-compose
(官⽅的这个教程有问题)⾸先我们需要先安装并升级 pip
yum install python-pip -y
pip install --upgrade pip
然后通过 pip 安装 Docker Compose
pip install docker-compose --ignore-installed
通过⼀下命令可以检查 Docker Compose 是否安装正确
docker-compose -v
反正我会报错SyntaxError: invalid syntax,如果你也是,那就⽤使⽤pip3安装:
yum install -y python3 python3-pip
sudo pip3 install -U pip
sudo pip3 install docker-compose
如果你还是报错SyntaxError: invalid syntax,请卸载掉之前python2.7版本的pip安装的docker-compose
到这⾥docker-compose已经安装成功了,你可以输⼊docker-compose -v试试
在云服务器运⾏PION-ION
是⽤git的。
下载ion相关代码运⾏
当然也可以本地先下载解压后上传,我就是使⽤docker的⽅式云部署的
解压后通过scp命令上传,本地cmd进⼊放有ion_all和ion_app_web两个⽂件夹的ion⽂件夹,然后把ion⽂件夹发送到服务器,下⾯的就是你远端服务器的ip,第⼀个root是⽤户名,第⼆个root
是⽬录
上传完了之后分别进⼊对应的⽂件夹load⼀下
如果出现报错
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?应该是没有开启docker服务,需要
load了之后分别进⼊两个⽂件夹开启docker-compose,需要注意的是每⼀次up开启后不会接收之后的指令,所以需要开两个终端,分别up 加-d是detach,在后台运⾏。可以随时在对应的⽬录输⼊  返回查看log界⾯
如果出现了报错
-bash: docker-compose: command not found
是docker-compose安装失败或者未建⽴链接,参照前⾯的步骤重新⽤pip3安装,或者运⾏
开放默认的端⼝即可访问服务器的服务了,即tcp的80和443,udp的5300-5500(这是我的sfu暴露出来的端⼝,也是l定义的)
caddy 服务器的证书安装
如何确定⾃⼰服务器类型?在终端输⼊
pip uninstall docker-compose
scp  -r ion .xx.xx :/root
cd /root/ion/ion_all
docker load --input gcr.io_etcd-development_etcd_v3.4.9.tar
docker load --input nats_latest.tar
docker load --input pionwebrtc_ion-avp_latest.tar
docker load --input pionwebrtc_ion-biz_latest.tar
docker load --input pionwebrtc_ion-islb_latest.tar
docker load --input pionwebrtc_ion-sfu_latest.tar
docker load --input redis_5.0.9.tar
cd /root/ion/ion_app_web
docker load --input ion-app-web_web_latest.tar
service docker start cd /root/ion/ion_all
sudo docker-compose up -d
cd /root/ion/ion_app_web
sudo docker-compose up -d
docker-compose logs sudo  ln  -s /usr/local/bin/docker-compose /usr/bin/docker-compose
curl -I localhost:9090 -k
其中的-k我也是根据提⽰改的,是关闭了curl的验证机制。
会告诉你server是什么,本项⽬是caddy。
caddy从当前⽬录的Caddyfile(默认)⽂件中读取配置,本项⽬中的位置在/root/ion/ion_app_web/configs/caddy/local.Caddyfile 由于在web的Dockerfile中有这么⼀句话  表明把configs/certs/挂载到了docker中的/app/certs/⽬录下
原本的local.Caddyfile关于tls的位置是这么写的
所以我们只需要把证书放到/root/ion/ion_app_web/configs/certs/⽂件夹中,然后把Caddyfile改成,crt和key⽂件是你的Apache版本的ssl证书
同时还需要在/root/ion/ion_app_l⽂件中挂载⼀下certs⽬录(好像主要是这个操作起作⽤)
关于ssl 证书
完善⽹站部署
现在我们知道了,web镜像的l中规定了容器可以被访问的端⼝,⽽local.Caddyfile规定了访问每个端⼝具体会展⽰⼀些什么。
在前⾯我们都是通过端⼝访问的,并且还只能是⽹址中带有https的访问,光这样我们当然不太满意,
我们可以使⽤redir将http访问重定向为https访问,并且把暴露的端⼝修改为80和443(http和https),这样⽆论外部怎么访问我们的域名,都会被重定向为https链接。
我们将带有端⼝的localhost直接换为了域名,就是规定了访问域名会展⽰什么样的页⾯,其中reverse_proxy为反向代理,反向代理到了我们的biz服务中,其端⼝在另⼀个ion_all的l中规定了。
下⾯是我们的local.Caddyfile,对应的⽹页端的l中只暴露了80和443端⼝。
ION 的级联SFU 的功能
SFU是星形拓扑的结构,⼤家都通过SFU获取其他推流的信息,但是不同地区的⽤户距离SFU的距离不⼀样,会有很⼤的体验上的差异。
解决办法就是⽤户选择从最近的SFU上传和获取内容,SFU之间通过级联的⽅式传递这些内容。
关于sfu<->sfu relay,可以查看这些下的讨论
在中写了⽬前还不⽀持此功能
COPY configs/certs/ /app/certs/  tls /app/certs/cert.pem /app/certs/key.pem
tls /app/certs/p.crt /app/certs/p.key
volumes:
- "./configs/certs/:/app/certs/"
1 www.你的域名 {
2    redir 你的域名{url}
3 }
4
5 你的域名 {
6  root * /app/dist
7  file_server
8
9  tls /app/certs/2_你的域名.crt /app/certs/3_你的域名.key
10
11  reverse_proxy /ws biz:8443 {
12    header_up Sec-WebSocket-Protocol {>Sec-WebSocket-Protocol}
13  }
14 }
# islb relay isn't finished yet, so only 1 sfu is supported
# when relay is ready, we'll switch to DaemonSet (1 pod per node)
# so the connections will be spread across the cluster
+ Only 1 SFU is currently supported (pending ISLB Relay Feature)
+ SFU is currently configured as a Deployment(scale=1); this will be changed to a DaemonSet (1 pod per node) once Relay is supported
Bonus:创建@⾃⼰的域名结尾的邮箱账户
不都是有⾃⼰的@后缀嘛,实际上可以通过腾讯云的域名解析实现。
登陆管理员账号,可以修改⾃⼰成员账号的名称,只⽀持修改⼀次,我修改为了master。
打开右上⾓的“我的企业”,在“企业信息”中添加“企业域名”,添加⾃有域名,对于腾讯云购买的域名,可以通过⽅法1⾃动跳转到验证界⾯,如果不能可以通过下⾯的⽅法来进⾏。
Bonus2:构建可⼤规模扩展的多⽅视频应⽤程序
Jitsi Meet - Secure, Simple and Scalable Video Conferences

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。