将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流

一、前言

    在博主之前的博文《在windows下搭建、配置nginx流媒体服务器,并进行rtmp流的推流、拉流测试》中,讲述了搭建nginx流媒体服务器的方法。但是如果仅仅执行这些步骤,安装好的nginx是只能在局域网(内网)内访问的。那怎样实现外网也能访问本地的nginx呢?有很多种方法,本文所使用的方法是把nginx部署在阿里云上,下面讲述具体的实现步骤。

 

二、购买阿里云服务器ECS(Elastic Compute Service)

首先百度搜索“阿里云”,进入阿里云官网,选择 弹性计算 -> 云服务器ECS,如下图所示:

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第1张图片

 

根据项目和企业的需求选择一款服务器,一般没有特殊需求的话选择通用型就可以了,这里我们选择通用型g6,点击“立即选配”。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第2张图片

 

这里因为我们的nginx是搭建在windows上面的,所以操作系统选择Windows Server。带宽这里有两个选项:“按流量收费”和“按固定带宽”。如果是小型企业,推荐使用按流量收费,因为小企业的带宽一般跑不满,选择这项可以节约成本。带宽选择100Mbps。这里如果带宽选择0Mbps配置出来的云服务器是没有公网ip;如果选择的带宽过小,比如只选了1Mbps,则如果推流的音视频流比特率过大或者推流数目过多时,播放可能会出现卡顿。这里因为选择的是“按流量收费”,所以无论选择的是0Mbps还是100Mbps,购买的钱都是一样的,这里的带宽数值仅仅表示你使用阿里云服务器时系统限制你的峰值带宽。设置好这些数值,购买后,可以通过“升降配”更改带宽等参数。注意如果选择的是“按流量收费”,则除了购买时付出的费用外,后面使用流量还得额外给钱的,所以得保证阿里云账户里面有足够的钱。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第3张图片

 

如果感觉上面的服务器太贵,仅仅只是学习用,可以选个入门级的,比如下面这款。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第4张图片

 

购买后,会收到购买成功提示的短信,表示购买成功了。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第5张图片

 

三、设置云服务器密码

购买完服务器后得设置实例密码,才能远程登录云服务器。我们按照上述短信所述,进行如下操作,重置密码。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第6张图片

 

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第7张图片

重置完密码后,在控制台重启实例,即可生效。

 

三、远程登录云服务器

在本地电脑中,运行 -> 输入 mstsc

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第8张图片

 

输入短信中所述的云服务器公网ip

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第9张图片

 

输入我们刚刚设置的密码(用户名默认为administrator)

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第10张图片

 

即可远程连接云服务器

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第11张图片

 

我们将nginx复制到云服务器中,然后启动nginx,nginx即可部署成功。

 

四、设置外网访问nginx

在nginx的配置文件中,我们可以看到nginx的rtmp端口为1935,http端口为80。我们得打开这两个服务器端口。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第12张图片

 

在云服务器电脑中,控制面板 -> 系统和安全 -> Windows 防火墙 -> 高级设置 -> 入站规则 -> 新建规则 ,将1935端口和80端口添加进去,如下图所示。

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第13张图片

 

然后登录阿里云官网,添加安全组规则,将1935端口和80端口添加进去

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第14张图片

 

设置完后,我们即可在本地电脑中访问阿里云上面的nginx了

将nginx部署在阿里云上实现公网访问本地nginx、外网推流播放音视频流_第15张图片

 

然后我们可以在本地电脑中进行推流、拉流测试。输入命令如下,正常情况下,是可以将本地电脑中的rtmp流推到阿里云上面的nginx上的,即可实现公网访问nginx。

ffmpeg -re -i video1.mp4 -vcodec copy -acodec copy -f flv rtmp://39.100.203.115/live/test1
​
ffplay rtmp://39.100.203.115/live/test1

 

五、参考文章

《阿里云服务器公网Ip外网无法访问》

你可能感兴趣的:(音视频技术)