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

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


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


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

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


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

一、启动coturn

首先进入到coturn目录,利用

bash 复制代码
# 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是否存在进程

bash 复制代码
sudo lsof -i:3478

效果:

二、nginx环境配置

bash 复制代码
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

可以利用下面三条命令进行操作:

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

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

bash 复制代码
sudo ps -ef | grep nginx

效果如下:

三、配置web服务器

首先产生证书:

bash 复制代码
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)配置自己的证书

bash 复制代码
ssl_certificate /home/sxl/cert/cert.pem; // 注意证书所在的路径
ssl_certificate_key /home/sxl/cert/key.pem;

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

bash 复制代码
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

bash 复制代码
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主配置文件

bash 复制代码
include /usr/local/nginx/conf/conf.d/*.conf;

配置完成后,输入:

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

如果配置成功,运行不会报错,效果如下图所示:

如果80端口被占,会发生报错如下:

此时采用kil l-9 80删除进程是无效的,需要输入下列命令:

bash 复制代码
 netstat -ntlp|grep 80
 fuser -k 80/tcp

之后便可以正常运行。

信令服务器后台执行:

bash 复制代码
sudo nohup node ./signal_server.js &
相关推荐
Black蜡笔小新27 分钟前
WebRTC嵌入式视频通话SDK:EasyRTC从免插件到轻量级带来的音视频通话技术
音视频·webrtc·sdk·rtc·webp2p
EasyNVR29 分钟前
EasyRTC:开启智能硬件与全平台互动新时代
网络·音视频·webrtc·p2p·智能硬件·视频监控
EasyGBS30 分钟前
从开发到部署:EasyRTC嵌入式视频通话SDK如何简化实时音视频通信的集成与应用
音视频·webrtc·实时音视频·视频监控
AI服务老曹9 小时前
通过感知、分析、预测、控制,最大限度发挥效率的智慧油站开源了
人工智能·开源·自动化·音视频
St-sun9 小时前
短视频导演编导制片人编剧教程策划影视媒体电商摄影后期 知识总结
音视频·媒体
SKYDROID云卓小助手11 小时前
无人设备遥控器之视频回传篇
网络·人工智能·嵌入式硬件·目标检测·计算机视觉·音视频
EasyNVR13 小时前
智能硬件新时代,EasyRTC开启物联音视频新纪元
运维·服务器·音视频·webrtc·p2p·智能硬件·视频监控
X@AKS13 小时前
http 响应码影响 video 标签播放视频
网络协议·http·音视频
深耕AI15 小时前
使用DeepSeek自动获取视频双语字幕srt文件【工具说明】
音视频·deepseek
科技小E15 小时前
EasyRTC:智能硬件适配,实现多端音视频互动新突破
网络协议·安全·小程序·音视频·webrtc·p2p·视频监控