编程技术分享平台

网站首页 > 技术教程 正文

利用宝塔自建linux+nginx-rtmp-module直播服务器的正确方法

xnh888 2024-10-05 03:06:47 技术教程 18 ℃ 0 评论

说明比较长,需要一定的操作动手能力才行。

基础条件 第一个必须是linux服务器 第二个安装了宝塔面板 第三编译安装nginx1.7.6+php5.6

1第一步

修改/www/server/panel/install/nginx.sh文件 如下图位置的文件


点编辑 找到 ./configure 部分 免费版7.1版大约在205行 我们添加一个 --add-module=/www/server/nginx_plus/nginx-rtmp-module 添加完成后如下:请勿直接复制 版本不一样 其他的配置也不一样

./configure?--add-module=/www/server/nginx_plus/nginx-rtmp-module?--user=www?--group=www?--prefix=${Setup_Path}?${ENABLE_LUA}?--add-module=${Setup_Path}/src/ngx_cache_purge?--add-module=${Setup_Path}/src/nginx-sticky-module?--with-openssl=${Setup_Path}/src/openssl?--with-pcre=pcre-${pcre_version}?${ENABLE_HTTP2}?--with-http_stub_status_module?--with-http_ssl_module?--with-http_image_filter_module?--with-http_gzip_static_module?--with-http_gunzip_module?--with-ipv6?--with-http_sub_module?--with-http_flv_module?--with-http_addition_module?--with-http_realip_module?--with-http_mp4_module?--with-ld-opt="-Wl,-E"?--with-cc-opt="-Wno-error"?${jemallocLD}?${ENABLE_NGX_PAGESPEED}?${ADD_EXTENSION}

可以看出就是在 --user=www 前面加上了 --add-module=/www/server/nginx_plus/nginx-rtmp-module 空格隔开

添加完了 记得保存

2第二步

打开XSHELL 命令工具 或者宝塔后台的 宝塔终端 输入你服务器的root密码登录。

执行 git clone https://github.com/arut/nginx-rtmp-module /www/server/nginx_plus/nginx-rtmp-module/ 语句,直到100%完成

如下图 回车等待下载完成

3第三步

第二步完成后 输入命令 sh /www/server/panel/install/nginx.sh install 1.17 回车进行nginx的编译

就不截图了和上面一样 等待编译完成 完成后大概是这样的编译时间很快几分钟的事

注意,安装成功后就不要使用宝塔后台的NGINX切换版本功能了

以上部分参考 https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=33703 并进行了修正。

4第四步

www 文件夹下建立 tmp 文件夹 tmp文件夹下建立 live 文件夹

继续打开 /www/server/nginx/conf 目录下的 nginx.conf 文件在

events
????{
????????use?epoll;
????????worker_connections?51200;
????????multi_accept?on;
????}

下面加上

rtmp?{??
??
????server?{??
??
????????listen?1935;??#监听的端口
??
????????chunk_size?4000;??
????????
????????application?hls?{
????????????live?on;
????????????hls?on;
????????????hls_path?/www/tmp/live;#视频流存放地址
????????????hls_fragment?1s;
????????????hls_playlist_length?2s;
????????????hls_continuous?on;?#连续模式。
????????????hls_cleanup?on;????#对多余的切片进行删除。
????????????hls_nested?on;?????#嵌套模式。
????????}
????}??
}

???access_log??/www/wwwlogs/access.log;
????}

下面加上

server
????{
????????listen?8080;
????????####要配置https格式访问的话就要把下面的启用,即把开头的#号删除,同时修改域名及证书
		#listen?8082?ssl;				#https协议的端口号?比如?https://xx.com:8082/????????
		#server_name?svn.php168.com;		#填写绑定证书的域名
		#ssl_certificate????C:/nginx-rtmp-win32-dev/conf/svn.php168.com.crt;			#换成自己的证书?注意路径
		#ssl_certificate_key????C:/nginx-rtmp-win32-dev/conf/svn.php168.com.key;		#换成自己的证书
		#ssl_protocols?TLSv1?TLSv1.1?TLSv1.2;
		#ssl_ciphers?ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
		#ssl_prefer_server_ciphers?on;
		#ssl_session_cache?shared:SSL:10m;
		#ssl_session_timeout?10m;
		#error_page?497??https://$host$request_uri;?
??????????location?/?{
????????????root?html;
????????}
		
????????location?/stat?{
????????????rtmp_stat?all;
????????????rtmp_stat_stylesheet?stat.xsl;
????????}

????????location?/stat.xsl?{
????????????root?/www/server/nginx_plus/nginx-rtmp-module/;
????????}
??????????location?/hls?{??#添加视频流存放地址。
????????types?{
????????????application/vnd.apple.mpegurl?m3u8;
????????????video/mp2t?ts;
????????}
????????#访问权限开启,否则访问这个地址会报403
????????autoindex?on;
????????alias?/www/tmp/live;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度
????????expires?-1;
????????add_header?Cache-Control?no-cache;
????????#防止跨域问题
????????add_header?'Access-Control-Allow-Origin'?'*';
????????add_header?'Access-Control-Allow-Credentials'?'true';
????????add_header?'Access-Control-Allow-Methods'?'GET,?POST,?OPTIONS';
????????add_header?'Access-Control-Allow-Headers'?'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';??
}

添加完成后的完整配置:(可以对照着修改)

user??www?www;
worker_processes?auto;
error_log??/www/wwwlogs/nginx_error.log??crit;
pid????????/www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile?51200;

events
????{
????????use?epoll;
????????worker_connections?51200;
????????multi_accept?on;
????}
rtmp?{??
??
????server?{??
??
????????listen?1935;??#监听的端口
??
????????chunk_size?4000;??
????????
????????application?hls?{
????????????live?on;
????????????hls?on;
????????????hls_path?/www/tmp/live;#视频流存放地址
????????????hls_fragment?1s;
????????????hls_playlist_length?2s;
????????????hls_continuous?on;?#连续模式。
????????????hls_cleanup?on;????#对多余的切片进行删除。
????????????hls_nested?on;?????#嵌套模式。
????????}
????}??
}
http
????{
????????include???????mime.types;
		#include?luawaf.conf;

		include?proxy.conf;

????????default_type??application/octet-stream;

????????server_names_hash_bucket_size?512;
????????client_header_buffer_size?32k;
????????large_client_header_buffers?4?32k;
????????client_max_body_size?50m;

????????sendfile???on;
????????tcp_nopush?on;

????????keepalive_timeout?60;

????????tcp_nodelay?on;

????????fastcgi_connect_timeout?300;
????????fastcgi_send_timeout?300;
????????fastcgi_read_timeout?300;
????????fastcgi_buffer_size?64k;
????????fastcgi_buffers?4?64k;
????????fastcgi_busy_buffers_size?128k;
????????fastcgi_temp_file_write_size?256k;
		fastcgi_intercept_errors?on;

????????gzip?on;
????????gzip_min_length??1k;
????????gzip_buffers?????4?16k;
????????gzip_http_version?1.1;
????????gzip_comp_level?2;
????????gzip_types?????text/plain?application/javascript?application/x-javascript?text/javascript?text/css?application/xml;
????????gzip_vary?on;
????????gzip_proxied???expired?no-cache?no-store?private?auth;
????????gzip_disable???"MSIE?[1-6]\.";

????????limit_conn_zone?$binary_remote_addr?zone=perip:10m;
		limit_conn_zone?$server_name?zone=perserver:10m;

????????server_tokens?off;
????????access_log?off;

server
????{
????????listen?888;
????????server_name?phpmyadmin;
????????index?index.html?index.htm?index.php;
????????root??/www/server/phpmyadmin;

????????#error_page???404???/404.html;
????????include?enable-php.conf;

????????location?~?.*\.(gif|jpg|jpeg|png|bmp|swf)$
????????{
????????????expires??????30d;
????????}

????????location?~?.*\.(js|css)?$
????????{
????????????expires??????12h;
????????}

????????location?~?/\.
????????{
????????????deny?all;
????????}
	
????????access_log??/www/wwwlogs/access.log;
????}
????server
????{
????????listen?8080;
????????####要配置https格式访问的话就要把下面的启用,即把开头的#号删除,同时修改域名及证书
		#listen?8082?ssl;				#https协议的端口号?比如?https://xx.com:8082/????????
		#server_name?svn.php168.com;		#填写绑定证书的域名
		#ssl_certificate????C:/nginx-rtmp-win32-dev/conf/svn.php168.com.crt;			#换成自己的证书?注意路径
		#ssl_certificate_key????C:/nginx-rtmp-win32-dev/conf/svn.php168.com.key;		#换成自己的证书
		#ssl_protocols?TLSv1?TLSv1.1?TLSv1.2;
		#ssl_ciphers?ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
		#ssl_prefer_server_ciphers?on;
		#ssl_session_cache?shared:SSL:10m;
		#ssl_session_timeout?10m;
		#error_page?497??https://$host$request_uri;?
??????????location?/?{
????????????root?html;
????????}
		
????????location?/stat?{
????????????rtmp_stat?all;
????????????rtmp_stat_stylesheet?stat.xsl;
????????}

????????location?/stat.xsl?{
????????????root?/www/server/nginx_plus/nginx-rtmp-module/;
????????}
??????????location?/hls?{??#添加视频流存放地址。
????????types?{
????????????application/vnd.apple.mpegurl?m3u8;
????????????video/mp2t?ts;
????????}
????????#访问权限开启,否则访问这个地址会报403
????????autoindex?on;
????????alias?/www/tmp/live;#视频流存放地址,与上面的hls_path相对应,这里root和alias的区别可自行百度
????????expires?-1;
????????add_header?Cache-Control?no-cache;
????????#防止跨域问题
????????add_header?'Access-Control-Allow-Origin'?'*';
????????add_header?'Access-Control-Allow-Credentials'?'true';
????????add_header?'Access-Control-Allow-Methods'?'GET,?POST,?OPTIONS';
????????add_header?'Access-Control-Allow-Headers'?'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';??
}
????}
include?/www/server/panel/vhost/nginx/*.conf;
}

最后记得点保存。

点他后面的设置按钮 先点重载配置 再点重启


5最后一步

在这里我们可以添加一个 ip或者你域名的网站


推流地址:rtmp://122.51.110.79/hls/selfserver162 ip可以是你这里绑定的域名或者ip selfserver162 是流名称

播放地址:http://122.51.110.79/hls/selfserver162/index.m3u8 selfserver162 是流名称

后台插件设置


以下是隐藏的内容需要回复才可见,因为回复过了,所以下面的内容可见


69_202002051909190ee29.rar(头条不能上传附件,请童孩们关注我并私信“直播服务器运行附件”留下邮箱,我会统一发到邮箱)

下载附件解压 放到你新创建的这个网站根目录。

宝塔后台添加一个定时任务一分钟执行一次就好或者自行百度shell 执行php

或者在xshell cd到你刚刚创建的网站根目录执行 nohup php zhibo.php & 任何按任意键返回控制台 再关闭xshell即可


zhibo.php 请打开修改17 18 19行为自己的网址

$web_url 为你展示直播的网站

$play_server 和$stat_url 为你最后一步在直播服务器创建的网站域名或者ip


步骤比较多 中间也修正过多次 应该是没有遗漏了 出问题概不负责 也是瞎鼓捣的

提供一个测试直播服务器 http://122.51.110.79 直播插件选择自建服务器 输入这个ip即可 有效期一个月 1核1G1M宽带的 1块钱买了一个月测试了下自建服务器 没有用了

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表