LNMP: nginx加装模块 nginx-rtmp-module
研究在已经部署lnmp的服务器上搭建以nginx做直播推流分发的服务端,需要给一键部署的nginx 添加rtmp第三方模块。
先说总结,lnmp一键部署脚本考虑得非常周到,只要简单操作即可无缝编译升级。只是文档说明有点语焉不详,网上流传的其他日志也错漏颇多,跟着别人的日志做差点翻车,把在线的网站给炸down了,还好直接覆盖安装没有影响任何配置。
一、操作流水账
1. 下载第三方模块
cd /home/download
git clone https://github.com/arut/nginx-rtmp-module.git
获得 /home/download/nginx-rtmp-module
第三方模块源码
2. 修改lnmp的安装配置文件,增加第三方模块参数
cd /home/download/lnmp1.6
vi lnmp.conf
编辑 lnmp.conf
文件, 把需要添加的模块路径按下面的格式填写到 Nginx_Modules_Options
后的引号中
Download_Mirror='https://soft.vpser.net'
#这个变量默认是空字符串,注意末尾加一个空格
#Nginx_Modules_Options=''
Nginx_Modules_Options='--add-module=/home/download/nginx-rtmp-module '
PHP_Modules_Options=''
……
编辑完后 wq 保存退出。
3. 执行编译更新
cd /home/download/lnmp1.6
./upgrade.sh nginx
提示输入需要升级的nginx版本号,输入当前相同的版本(1.16.1)
脚本将自动完成编译和nginx 服务重启
4. 最后,检查模块是否已经添加成功
nginx -V
nginx version: nginx/1.16.1
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)
built with OpenSSL 1.1.1d 10 Sep 2019
TLS SNI support enabled
configure arguments: --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-http_sub_module --with-stream --with-stream_ssl_module --with-openssl=/home/download/lnmp1.6/src/openssl-1.1.1d --with-openssl-opt='enable-weak-ssl-ciphers'--add-module=/home/download/nginx-rtmp-module
OK!
二、避坑备忘
关键在于编辑 lnmp.conf 时
Nginx_Modules_Options='--add-module=/home/download/nginx-rtmp-module '
--add-module
前面不留空格,两个减号;
末尾添加一个空格,如果需要添加多个第三方模块,按这个格式继续添加,空格间隔。
如果不按上述格式准确填写,会提示升级失败,而且sbin/nginx 会被升级脚本删除,导致 lnmp 重启后无法启动。
已经中招的我的解决方法(步骤):
- 备份 /home/wwwroot/ (事后证明不需要)
- 备份 mysql 数据库 (事后证明不需要)
- 备份nginx 的vhost配置文件 (事后证明不需要)
- 在lnmp安装目录下再次执行nginx的安装操作
/home/download/lnmp1.6/install.sh
nginx
安装完后vhost和 php,mysql配置依旧在,虚惊一场。
相关链接
《官方文档:LNMP 1.2/1.3或更高版本升级Nginx、MySQL/MariaDB、PHP教程》 https://lnmp.org/faq/lnmp1-2-upgrade.html
《直播推流nginx-rtmp-module集成》 https://www.jianshu.com/p/3224341a205f
《Nginx与Nginx-rtmp-module搭建RTMP视频直播和点播服务器》 https://zhuanlan.zhihu.com/p/28009037
