基于 Nginx 搭建视频直播服务器
近年来,网络视频直播处于蓬勃的发展期,各大直播平台的竞争也趋于白热化。在游戏直播领域,就有许多电子竞技的前职业选手,退役后转行做游戏主播,收入不菲。当然,网络直播的用处不仅仅是娱乐行业,诸如实时视频监控等应用,同样具有广阔的市场。事实上,如果没有太高的并发播放需求,完全可以自己运行一个小型的直播平台。
笔者在参看了大量教程后,借助于 Nginx 和一些拓展模块,成功地在 VPS 上搭建了一台视频直播服务器。经过测试,能够正常地使用 OBS Studio 推流,在浏览器上实现 HLS 视频流播放。下面附上具体步骤,你会发现,视频直播的相关配置其实并不复杂。
下载 Nginx 及扩展模块
首先,需要下载可编译的 Nginx 源代码,以及nginx-http-flv-module拓展库。
获取 Nginx 源码
这一步需要根据你所使用的系统的实际情况选择:
- 未安装或曾使用包管理工具安装了 Nginx:参考文章 Nginx 环境搭建中「源码安装」的「准备工作」步骤获取源码;
- 此前通过源码编译安装了 Nginx:如果下载的源码没有删除,可以继续使用,具体操作会在后文中讲到;也可以参考上一条下载最新的源码;
- 如果你已经非常熟悉 Linux 和 Nginx 的安装配置,当然也可以使用你喜欢的其他方式安装。
下载拓展库
GitHub 项目地址:nginx-http-flv-module,克隆到本地即可:1
2
3
4
5#为 Nginx 创建扩展模块目录
mkdir nginx_module
cd nginx_module
#下载扩展包到 nginx 扩展模块目录下
git clone https://github.com/winshining/nginx-http-flv-module.git
安装 Nginx
查看 Nginx 配置参数
如果此前已经安装过 Nginx,执行nginx -V会输出配置参数,类似于这样:

复制configure arguments后的所有参数,例如:1
--prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
这会在后面用到。
如果是初次安装则可以跳过这一步,使用默认的configure参数。
编译 Nginx
首先进入 Nginx 源码目录:1
cd nginx-1.14.0
然后用configure生成 Makefile 脚本。configure参数是刚才从nginx -V中复制的参数,加上--add-module=/path/to/nginx-http-flv-module,即nginx-http-flv-module扩展包的目录。例如1
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module --add-module=/root/nginx_module/nginx-http-flv-module
之后就可以编译安装了1
make && make install
再次执行nginx -V查看安装状态,如果configure arguments后出现nginx-http-flv-module说明安装成功!
最后重启 Nginx 服务即可。1
systemctl restart nginx
注意:在部分系统下需要使用service代替systemctl命令。




