IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> ubuntu已安装的nginx添加rtmp模块 -> 正文阅读

[系统运维]ubuntu已安装的nginx添加rtmp模块

????????服务器已安装nginx并有服务已经发布。部署新的服务时需要添加rtmp模块以支持推流。经查rtmp模块为社区开发的模块,非官方模块。nginx也并不能动态的添加模块。想要添加新的功能只能通过源代码编译出新的执行文件替换原有执行文件。

????????本文记录Ubuntu环境下添加rtmp模块编译新的执行文件的过程。

1、查看当前nginx版本信息

root@iZwz924eh34ene3sxg0an3Z:~# nginx -V
nginx version: nginx/1.10.3
built by gcc 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 
built with OpenSSL 1.0.2g  1 Mar 2016
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-ipv6 --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_addition_module --with-http_dav_module --with-http_geoip_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_v2_module --with-http_sub_module --with-http_xslt_module --with-stream --with-stream_ssl_module --with-mail --with-mail_ssl_module --with-threads

????????这里的 configure arguments 可以先复制出来,后面编译的时候会用到。

2、下载nginx代码

????????根据上一步查询的版本,下载对应版本代码。1.10.3版本对应代码路径:

wget http://nginx.org/download/nginx-1.10.3.tar.gz    //下载代码包
tar -zxvf nginx-1.12.1.tar.gz                         //解压代码包

3、下载rtmp模块代码

????????从git拉取rtmp模块代码

git clone https://github.com/arut/nginx-rtmp-module.git

4、配置编译参数

????????假如nginx解压的代码存放路径为: /root/nginx-1.10.3,? ?git下载的模块代码存放路径为:/root/nginx-rtmp-module

????????进入nginx代码目录

cd  /root/nginx-1.10.3 

????????执行编译配置指令:

sudo ./configure --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --add-module=/root/nginx-rtmp-module 
--with-cc-opt='-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2' 
--with-ld-opt='-Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now' 
--prefix=/usr/share/nginx 
--conf-path=/etc/nginx/nginx.conf 
--http-log-path=/var/log/nginx/access.log 
--error-log-path=/var/log/nginx/error.log 
--lock-path=/var/lock/nginx.lock 
--pid-path=/run/nginx.pid 
--http-client-body-temp-path=/var/lib/nginx/body 
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi 
--http-proxy-temp-path=/var/lib/nginx/proxy 
--http-scgi-temp-path=/var/lib/nginx/scgi 
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi 
--with-debug 
--with-pcre-jit 
--with-ipv6 
--with-http_ssl_module 
--with-http_stub_status_module 
--with-http_realip_module 
--with-http_auth_request_module 
--with-http_addition_module 
--with-http_dav_module 
--with-http_geoip_module 
--with-http_gunzip_module 
--with-http_gzip_static_module 
--with-http_image_filter_module 
--with-http_v2_module 
--with-http_sub_module 
--with-http_xslt_module 
--with-stream 
--with-stream_ssl_module 
--with-mail 
--with-mail_ssl_module 
--with-threads

????????./configure 命令后面的参数就是查看nginx版本信息时返回的 configure arguments 参数信息,另外再多加了一句:

--conf-path=/etc/nginx/nginx.conf --add-module=/root/nginx-rtmp-module 

????????这里的 conf-path 是nginx 的配置文件路径 add-module 是添加的模块的代码路径。

5、执行编译指令

????????在nginx源代码目录执行make指令进行编译

make

????????make过程中可能会提示各种模块的缺失,对应的安装指令有:

./configure: error: the HTTP rewrite module requires the PCRE library.
sudo apt-get install libpcre3 libpcre3-dev

./configure: error: SSL modules require the OpenSSL library.
sudo apt-get install openssl libssl-dev

./configure: error: the HTTP XSLT module requires the libxml2/libxslt
sudo apt-get install libxslt1-dev

./configure: error: the HTTP image filter module requires the GD library.
sudo apt install libgd-dev

./configure: error: the GeoIP module requires the GeoIP library
sudo apt install libgeoip-dev

????????各种模块缺失的问题解决后,还有可能会有data-time类型的报错信息:

????????ngx_rtmp_stat_module.c:771:67: error: macro "TIME" might prevent reproducible builds [-Werror=date-time]

????????进入objs目录,修改Makefile 文件,删除CFLAGS 中的 -Werror=date-time 保存再编译就能成功。

6、替换执行文件

????????将编译好的nginx文件复制到 之前安装的 /usr/local/webserver/nginx/sbin/ 目录,替换旧的 nginx 文件。建议备份一下旧的 nginx 文件。然后重启下nginx 就可以了。

????????复制前先停止正在运行的nginx 服务

nginx -s stop
cp /root/nginx-1.10.3/objs/nginx  /usr/local/webserver/nginx/sbin/
start nginx

? ? ? ? 到此rtmp模块就已经添加上了。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-16 22:58:21  更:2022-03-16 23:02:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:21:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码