首页 > 系统相关 >linux下nginx安装rtmp模块

linux下nginx安装rtmp模块

时间:2023-03-06 12:14:44浏览次数:58  
标签:http -- module nginx disable rtmp linux ngx

0.背景

1.安装

1.1 安装nginx所需的编译环境

yum install -y wget unzip gcc gcc-c++ perl pcre-devel zlib zlib-devel openssl openssl-devel net-tools

1.2 下载nginx

# 利用wget下载文件,此处我将下载文件放到了/yang/software目录下
wget http://nginx.org/download/nginx-1.18.0.tar.gz

可以在Nginx官网手动下载,或者查看Nginx的历史版本下载列表

1.3 下载nginx-rtmp模块

# 利用wget下载rtmp模块,同样放到了/yang/software目录下
# -c:指定源,-O:执行下载后的名字
wget -c https://codeload.github.com/arut/nginx-rtmp-module/zip/master -O nginx-rtmp-module-master.zip

1.4 解压下载的2个文件

tar -zxvf nginx-1.18.0.tar.gz
unzip nginx-rtmp-module-master.zip

此时,可以看到解压后的文件夹。

[root@yang37 /yang/software]#  ll
total 1.6M
drwxr-xr-x 8 1001 1001  4.0K 2020/04/21 22:09:06 nginx-1.18.0
-rw-r--r-- 1 root root 1016K 2020/04/21 22:33:27 nginx-1.18.0.tar.gz
drwxr-xr-x 6 root root  4.0K 2021/05/25 15:42:16 nginx-rtmp-module-master
-rw-r--r-- 1 root root  534K 2023/03/06 10:57:55 nginx-rtmp-module-master.zip

1.5 配置nginx所需rtmp模块

# 进入解压后的nginx文件夹
cd nginx-1.18.0

# nginx安装前配置
# 注意: =号面输入刚解压后rtmp包的绝对路径
# 其实可以看到,执行
./configure --add-module=/yang/software/nginx-rtmp-module-master

执行成功后的界面如下,如果出现error,可以检查下1.1节的环境是否都安装好。

image-20230306110832589

1.6 执行安装

# 注意是在刚才nginx文件夹的同级目录
# pwd
#/yang/software/nginx-1.18.0

# make: 编译,make install: 安装
make&make install

1.7 安装完成

安装完成后,可以通过以下命令查看安装情况。

# nginx默认安装到/usr/local/nginx
cd /usr/local/nginx/sbin

# -V查看详细信息
[root@yang37 /usr/local/nginx/sbin]#  ./nginx -V
nginx version: nginx/1.18.0
built by gcc 7.3.0 (GCC) 
built with OpenSSL 1.1.1q  5 Jul 2022
TLS SNI support enabled
configure arguments: --add-module=/yang/software/nginx-rtmp-module-master

此时还只能进入上面的指定文件夹来运行Nginx命令,可以通过软链接注册一个全局命令。

# 可执行文件都放在/usr/bin目录下的,比如你执行whereis wget可以看到刚下载的wget在/usr/bin/wget.
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

# 此时,在任意目录即可执行nginx命令.
[root@yang37 /]#  cd /;nginx -v
nginx version: nginx/1.18.0

同样的,对于Nginx的配置文件、日志文件等,我一般也习惯软链到指定位置去。

1.8 扩展

其实configure也就是个可执行文件而已。

image-20230306113358108

nginx和rtmp的使用不在本文描述了,提一下刚才的下载的文件。

下载的2个压缩包安装好后就可以删除了,但是解压后的2个文件夹建议保留。

比如往后要重新加nginx的模块,可以在1.5节那里修改下编译参数,配置好后重新编译和安装,就有新模块了。

注意重新安装时在执行上面操作前备份下数据文件,类似于nginx.conf这种,应该是会被覆盖掉的,可以在安装完成后替换回来,这样数据也不会丢失。

我测试了下,好像重新再安装没有覆盖我的nginx.conf文件,安装位置/usr/local/nginxsbin文件夹中的可执行文件也自动保留了旧的,看样子nginx考虑的还是很周到。

不过还是建议养成备份数据文件的习惯,如果不小心覆盖了,还能及时恢复。

image-20230306115347769

举例,在网上搜索Nginx安装sftp等内容时,有这篇文章:nginx 添加stream模块支持tcp、sftp代理

# nginx 添加stream模块支持tcp、sftp代理,这篇文章中提到的安装命令。
./configure --prefix=/home/deployer/soft/nginx_backward_proxy --with-stream --with-http_ssl_module

# 本文1.5节中安装rtmp用到的原始命令
./configure --add-module=/yang/software/nginx-rtmp-module-master

# 像我们现在的情况,没用prefix指位置,然后安装了rtmp的模块。
# 他文中提到的命令,我就需要改成下面这个,加上stream和http_ssl_module两个模块。
./configure --add-module=/yang/software/nginx-rtmp-module-master --with-stream --with-http_ssl_module

# 重新 make&&make install 就又安装好了,这个时候再执行—V可以看到已经安装进去了
[root@yang37 /yang/software/nginx-1.18.0]#  nginx -V
nginx version: nginx/1.18.0
built by gcc 7.3.0 (GCC) 
built with OpenSSL 1.1.1q  5 Jul 2022
TLS SNI support enabled
configure arguments: --add-module=/yang/software/nginx-rtmp-module-master --with-stream --with-http_ssl_module

对configure文件执行-- help可以查看帮助信息,可以参考下面。

[root@yang37 /yang/software/nginx-1.18.0]#  ./configure --help

  --help                             print this message

  --prefix=PATH                      set installation prefix
  --sbin-path=PATH                   set nginx binary pathname
  --modules-path=PATH                set modules path
  --conf-path=PATH                   set nginx.conf pathname
  --error-log-path=PATH              set error log pathname
  --pid-path=PATH                    set nginx.pid pathname
  --lock-path=PATH                   set nginx.lock pathname

  --user=USER                        set non-privileged user for
                                     worker processes
  --group=GROUP                      set non-privileged group for
                                     worker processes

  --build=NAME                       set build name
  --builddir=DIR                     set build directory

  --with-select_module               enable select module
  --without-select_module            disable select module
  --with-poll_module                 enable poll module
  --without-poll_module              disable poll module

  --with-threads                     enable thread pool support

  --with-file-aio                    enable file AIO support

  --with-http_ssl_module             enable ngx_http_ssl_module
  --with-http_v2_module              enable ngx_http_v2_module
  --with-http_realip_module          enable ngx_http_realip_module
  --with-http_addition_module        enable ngx_http_addition_module
  --with-http_xslt_module            enable ngx_http_xslt_module
  --with-http_xslt_module=dynamic    enable dynamic ngx_http_xslt_module
  --with-http_image_filter_module    enable ngx_http_image_filter_module
  --with-http_image_filter_module=dynamic
                                     enable dynamic ngx_http_image_filter_module
  --with-http_geoip_module           enable ngx_http_geoip_module
  --with-http_geoip_module=dynamic   enable dynamic ngx_http_geoip_module
  --with-http_sub_module             enable ngx_http_sub_module
  --with-http_dav_module             enable ngx_http_dav_module
  --with-http_flv_module             enable ngx_http_flv_module
  --with-http_mp4_module             enable ngx_http_mp4_module
  --with-http_gunzip_module          enable ngx_http_gunzip_module
  --with-http_gzip_static_module     enable ngx_http_gzip_static_module
  --with-http_auth_request_module    enable ngx_http_auth_request_module
  --with-http_random_index_module    enable ngx_http_random_index_module
  --with-http_secure_link_module     enable ngx_http_secure_link_module
  --with-http_degradation_module     enable ngx_http_degradation_module
  --with-http_slice_module           enable ngx_http_slice_module
  --with-http_stub_status_module     enable ngx_http_stub_status_module

  --without-http_charset_module      disable ngx_http_charset_module
  --without-http_gzip_module         disable ngx_http_gzip_module
  --without-http_ssi_module          disable ngx_http_ssi_module
  --without-http_userid_module       disable ngx_http_userid_module
  --without-http_access_module       disable ngx_http_access_module
  --without-http_auth_basic_module   disable ngx_http_auth_basic_module
  --without-http_mirror_module       disable ngx_http_mirror_module
  --without-http_autoindex_module    disable ngx_http_autoindex_module
  --without-http_geo_module          disable ngx_http_geo_module
  --without-http_map_module          disable ngx_http_map_module
  --without-http_split_clients_module disable ngx_http_split_clients_module
  --without-http_referer_module      disable ngx_http_referer_module
  --without-http_rewrite_module      disable ngx_http_rewrite_module
  --without-http_proxy_module        disable ngx_http_proxy_module
  --without-http_fastcgi_module      disable ngx_http_fastcgi_module
  --without-http_uwsgi_module        disable ngx_http_uwsgi_module
  --without-http_scgi_module         disable ngx_http_scgi_module
  --without-http_grpc_module         disable ngx_http_grpc_module
  --without-http_memcached_module    disable ngx_http_memcached_module
  --without-http_limit_conn_module   disable ngx_http_limit_conn_module
  --without-http_limit_req_module    disable ngx_http_limit_req_module
  --without-http_empty_gif_module    disable ngx_http_empty_gif_module
  --without-http_browser_module      disable ngx_http_browser_module
  --without-http_upstream_hash_module
                                     disable ngx_http_upstream_hash_module
  --without-http_upstream_ip_hash_module
                                     disable ngx_http_upstream_ip_hash_module
  --without-http_upstream_least_conn_module
                                     disable ngx_http_upstream_least_conn_module
  --without-http_upstream_random_module
                                     disable ngx_http_upstream_random_module
  --without-http_upstream_keepalive_module
                                     disable ngx_http_upstream_keepalive_module
  --without-http_upstream_zone_module
                                     disable ngx_http_upstream_zone_module

  --with-http_perl_module            enable ngx_http_perl_module
  --with-http_perl_module=dynamic    enable dynamic ngx_http_perl_module
  --with-perl_modules_path=PATH      set Perl modules path
  --with-perl=PATH                   set perl binary pathname

  --http-log-path=PATH               set http access log pathname
  --http-client-body-temp-path=PATH  set path to store
                                     http client request body temporary files
  --http-proxy-temp-path=PATH        set path to store
                                     http proxy temporary files
  --http-fastcgi-temp-path=PATH      set path to store
                                     http fastcgi temporary files
  --http-uwsgi-temp-path=PATH        set path to store
                                     http uwsgi temporary files
  --http-scgi-temp-path=PATH         set path to store
                                     http scgi temporary files

  --without-http                     disable HTTP server
  --without-http-cache               disable HTTP cache

  --with-mail                        enable POP3/IMAP4/SMTP proxy module
  --with-mail=dynamic                enable dynamic POP3/IMAP4/SMTP proxy module
  --with-mail_ssl_module             enable ngx_mail_ssl_module
  --without-mail_pop3_module         disable ngx_mail_pop3_module
  --without-mail_imap_module         disable ngx_mail_imap_module
  --without-mail_smtp_module         disable ngx_mail_smtp_module

  --with-stream                      enable TCP/UDP proxy module
  --with-stream=dynamic              enable dynamic TCP/UDP proxy module
  --with-stream_ssl_module           enable ngx_stream_ssl_module
  --with-stream_realip_module        enable ngx_stream_realip_module
  --with-stream_geoip_module         enable ngx_stream_geoip_module
  --with-stream_geoip_module=dynamic enable dynamic ngx_stream_geoip_module
  --with-stream_ssl_preread_module   enable ngx_stream_ssl_preread_module
  --without-stream_limit_conn_module disable ngx_stream_limit_conn_module
  --without-stream_access_module     disable ngx_stream_access_module
  --without-stream_geo_module        disable ngx_stream_geo_module
  --without-stream_map_module        disable ngx_stream_map_module
  --without-stream_split_clients_module
                                     disable ngx_stream_split_clients_module
  --without-stream_return_module     disable ngx_stream_return_module
  --without-stream_upstream_hash_module
                                     disable ngx_stream_upstream_hash_module
  --without-stream_upstream_least_conn_module
                                     disable ngx_stream_upstream_least_conn_module
  --without-stream_upstream_random_module
                                     disable ngx_stream_upstream_random_module
  --without-stream_upstream_zone_module
                                     disable ngx_stream_upstream_zone_module

  --with-google_perftools_module     enable ngx_google_perftools_module
  --with-cpp_test_module             enable ngx_cpp_test_module

  --add-module=PATH                  enable external module
  --add-dynamic-module=PATH          enable dynamic external module

  --with-compat                      dynamic modules compatibility

  --with-cc=PATH                     set C compiler pathname
  --with-cpp=PATH                    set C preprocessor pathname
  --with-cc-opt=OPTIONS              set additional C compiler options
  --with-ld-opt=OPTIONS              set additional linker options
  --with-cpu-opt=CPU                 build for the specified CPU, valid values:
                                     pentium, pentiumpro, pentium3, pentium4,
                                     athlon, opteron, sparc32, sparc64, ppc64

  --without-pcre                     disable PCRE library usage
  --with-pcre                        force PCRE library usage
  --with-pcre=DIR                    set path to PCRE library sources
  --with-pcre-opt=OPTIONS            set additional build options for PCRE
  --with-pcre-jit                    build PCRE with JIT compilation support

  --with-zlib=DIR                    set path to zlib library sources
  --with-zlib-opt=OPTIONS            set additional build options for zlib
  --with-zlib-asm=CPU                use zlib assembler sources optimized
                                     for the specified CPU, valid values:
                                     pentium, pentiumpro

  --with-libatomic                   force libatomic_ops library usage
  --with-libatomic=DIR               set path to libatomic_ops library sources

  --with-openssl=DIR                 set path to OpenSSL library sources
  --with-openssl-opt=OPTIONS         set additional build options for OpenSSL

  --with-debug                       enable debug logging

标签:http,--,module,nginx,disable,rtmp,linux,ngx
From: https://www.cnblogs.com/yang37/p/17183261.html

相关文章

  • prometheus监控nginx
    1.下载vtscd/optgitclonehttps://github.com/vozlt/nginx-module-vts.git2.编译nginx./configure--prefix=/app/nginx-1.22.1\--user=www\--group=www\--......
  • linux命令之journalctl查看日志信息
    #以flow形式查看日志实时滚动$journalctl-f#查看内核日志$journalctl-k#查看指定服务日志实时滚动最新日志$journalctl-udocker.serivce#查看指......
  • Linux 查看重启开机时间
    Linux查看重启开机时间#最近启动时间who-b#systemboot2021-12-3107:07#最后重启日期last-xreboot|head-1#机器运行时长uptime-p......
  • Linux 打包压缩
    1.zip#压缩目录zip-rtese.zipdirname#压缩文件ziptest.ziptest1.txttest2.txttest3.txt#参数-r:递归压缩目录-m:文件压缩后删除原始文件-v:显示压缩......
  • Hyper-V 无法启动 Arch Linux 安装盘
    在Hyper-V上尝试安装Archlinux,使用了archlinux-2023.03.01-x86_64.iso发现在Hyper-V上无法启动。然后VirtualBox又是好的。这是Intel在最新的Kernel上集成的ibt(indire......
  • nginx 命令说明
    #启动命令./sbin/nginx-c./conf/nginx.conf#验证配置是否正确./nginx-t回显testissuccessful说明配置正确第二种方法  ./sbin/nginx-t-c./conf/nginx.conf......
  • Linux 终端中使用 nano 编辑器技巧
    导读最初在 Linux 终端中使用nano编辑器的时候,或多或少可能会遇到一些问题。使用它编辑内容应该没什么,一切都很简单,但是在编辑完成后,怎样保存内容呢?常规的ctrl+......
  • Linux三剑客
    1.awk(格式化生成器&列值输出)1.1语法结构:awk[option]'pattern{action}'filenameawk-F|-v'处理范围{输出方式}'文件名1.2option参数 -F:指明输入字段的分隔符......
  • 在linux服务器/系统上编译运行VTM
    在linux服务器运行VTM本文介绍的是如何将windows系统的已配置完成的项目放在linux系统上运行我使用的是featurize服务器做的,如果需要直接在linux系统或虚拟机上做的话,步......
  • Linux & 标准C语言学习 <DAY1>
    Linux系统简单介绍:  BCPL->NewB->C->UNIX->Minix->Linux->gcc  美国贝尔实验室1968  Linux管理硬盘的能力非常强,所以只有一个磁盘分区  cd路径名......