当前位置: 首页 > news >正文

一对一WebRTC视频通话系列(六)——部署到公网

本系列博客主要记录一对一WebRTC视频通话实现过程中的一些重点,代码全部进行了注释,便于理解WebRTC整体实现。


本专栏知识点是通过<零声教育>的音视频流媒体高级开发课程进行系统学习,梳理总结后写下文章,对音视频相关内容感兴趣的读者,可以点击观看课程网址:零声教育


一对一WebRTC视频通话系列往期博客

一对一WebRTC视频通话系列(一)—— 创建页面并显示摄像头画面
一对一WebRTC视频通话系列(二)——websocket和join信令实现
一对一WebRTC视频通话系列(三)——leave和peer-leave信令实现
一对一WebRTC视频通话系列(四)——offer、answer、candidate信令实现
一对一WebRTC视频通话系列(五)——综合调试和功能完善


一对一WebRTC视频通话系列(六)——部署到公网

  • 一、启动coturn
  • 二、nginx环境配置
  • 三、配置web服务器

一、启动coturn

首先进入到coturn目录,利用

# nohup是重定向命令,输出都将附加到当前目录的 nohup.out 文件中; 命令后加 & ,后台执行起来后按ctr+c,不会停止
sudo nohup turnserver -L 0.0.0.0 -a -u sxl:zxc -v -f -r nort.gov &
//前台启动
sudo turnserver -L 0.0.0.0 -a -u sxl:zxc -v -f -r nort.gov

然后查看相应的端口号3478是否存在进程

sudo lsof -i:3478

效果:
在这里插入图片描述

二、nginx环境配置

sudo apt-get update
#安装依赖:gcc、g++依赖库
sudo apt-get install build-essential libtool
#安装 pcre依赖库(http://www.pcre.org/)
sudo apt-get install libpcre3 libpcre3-dev
#安装 zlib依赖库(http://www.zlib.net)
sudo apt-get install zlib1g-dev
#安装ssl依赖库
sudo apt-get install openssl
#下载nginx 1.15.8版本
wget http://nginx.org/download/nginx-1.15.8.tar.gz
tar xvzf nginx-1.15.8.tar.gz
cd nginx-1.15.8/
# 配置,一定要支持https
./configure --with-http_ssl_module
# 编译
make
#安装
sudo make install

nginx默认安装目录为:/usr/local/nginx
可以利用下面三条命令进行操作:

启动:sudo /usr/local/nginx/sbin/nginx
停止:sudo /usr/local/nginx/sbin/nginx ­s stop
重新加载配置文件:sudo /usr/local/nginx/sbin/nginx ­s reload

先启动nginx,然后利用下列命令查看是否启动成功

sudo ps -ef | grep nginx

效果如下:
在这里插入图片描述

三、配置web服务器

首先产生证书:

mkdir -p ~/cert
cd ~/cert
# CA私钥
openssl genrsa -out key.pem 2048
# 自签名证书
openssl req -new -x509 -key key.pem -out cert.pem -days 1095

在这里插入图片描述

配置文件主要包括3部分:
(1)配置自己的证书

ssl_certificate /home/sxl/cert/cert.pem; // 注意证书所在的路径
ssl_certificate_key /home/sxl/cert/key.pem;

(2)配置主机域名或者主机IP

upstream websocket {server 192.168.226.3:8099;
}server_name 192.168.226.3;

(3)端口
客户端与Nginx服务器监听的端口:8098
客户端与Nginx服务器监听的端口:8099

完整配置文件:/usr/local/nginx/conf/conf.d/webrtc­-websocket­-proxy.conf

map $http_upgrade $connection_upgrade {default upgrade;'' close;
}upstream websocket {server 192.168.226.3:8099;
}server {listen 8098 ssl;#ssl on;ssl_certificate /home/sxl/cert/cert.pem;ssl_certificate_key /home/sxl/cert/key.pem;server_name 192.168.226.3;location /ws {proxy_pass http://websocket;proxy_http_version 1.1;proxy_connect_timeout 4s;proxy_read_timeout 6000s; proxy_send_timeout 6000s;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection $connection_upgrade;}
}

之后需要配置nginx主配置文件

include /usr/local/nginx/conf/conf.d/*.conf;

配置完成后,输入:

sudo /usr/local/nginx/sbin/nginx 
//如果修改配置,重新加载
sudo /usr/local/nginx/sbin/nginx -s reload

如果配置成功,运行不会报错,效果如下图所示:
在这里插入图片描述

如果80端口被占,会发生报错如下:
在这里插入图片描述
此时采用kil l-9 80删除进程是无效的,需要输入下列命令:

 netstat -ntlp|grep 80fuser -k 80/tcp

在这里插入图片描述
之后便可以正常运行。
在这里插入图片描述
信令服务器后台执行:

sudo nohup node ./signal_server.js &
http://www.lryc.cn/news/348747.html

相关文章:

  • 【数据结构】线性表----链表详解
  • 【小程序】小程序如何适配手机屏幕
  • 第15节 编写shellcode加载器
  • JAVA学习-练习试用Java实现爬楼梯
  • [SWPUCTF 2021 新生赛]PseudoProtocols、[SWPUCTF 2022 新生赛]ez_ez_php
  • Hive-拉链表的设计与实现
  • AI应用案例:会议纪要自动生成
  • 基于光纤技术的新能源汽车电池安全监测--FOM²系统
  • 基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (二)
  • Spring MVC(三) 参数传递
  • 常见加解密算法02 - RC4算法分析
  • 如何使用 ERNIE 千帆大模型基于 Flask 搭建智能英语能力评测对话网页机器人(详细教程)
  • Java全局异常处理,@ControllerAdvice异常拦截原理解析【简单易懂】
  • 代码随想录35期Day38-Java(Day37休息)
  • 力扣HOT100 - 739. 每日温度
  • 【爬虫之scrapy框架——尚硅谷(学习笔记one)--基本步骤和原理+爬取当当网(基本步骤)】
  • C++ QT设计模式:责任链模式
  • 基于springboot+mybatis+vue的项目实战之(后端+前后端联调)
  • 【教程向】从零开始创建浏览器插件(六)实战篇
  • 如何用 OceanBase做业务开发——【DBA从入门到实践】第六期
  • Element-UI快速入门
  • 【JavaWeb】网上蛋糕商城后台-商品管理
  • Django Admin后台管理:高效开发与实践
  • Centos7网卡启动失败(Failed to start LSB: Bring up/down)
  • 【NOIP2008普及组复赛】 题4:立体图
  • 【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 删除并获得点数(难度⭐⭐)(76)
  • Windows---CMD常用指令大全
  • 消息中间件是什么?有什么用?常见的消息中间件有哪些?
  • 富锂锰基材料极具发展潜力 我国产业化进程加速
  • 聚水潭和金蝶云星空单据接口对接