wget http://nginx.org/download/nginx-1.21.6.tar.gz
wget GitHub - arut/nginx-rtmp-module: NGINX-based Media Streaming Server
wget https://github.com/winshining/nginx-http-flv-module/archive/refs/heads/master.zip
root@ubuntu:/home/guohua/my-nginx/nginx-1.21.6# ./configure --with-http_ssl_module --with-http_v2_module --with-http_flv_module --with-http_mp4_module --add-module=../nginx-rtmp-module-master --add-module=../nginx-http-flv-module-master
(同时--add-module=../nginx-rtmp-module-master --add-module=../nginx-http-flv-module-master,编译会有冲突。我最后是去掉了--add-module=../nginx-rtmp-module-master,只留--add-module=../nginx-http-flv-module-master编译通过然后make install 安装,这样Nginx配置中的 flv_live on 和 rtmp { server{ }} 都可以成功配置(有可能是因为之前单独--add-module=../nginx-rtmp-module-master安装过了rtmp))
make -j 40 make install
配置
location /flv {
flv_live on; #reload 不生效,需要重启
chunked_transfer_encoding on;
add_header 'Access-Control-Allow-Origin' '*'; # 允许跨域
add_header 'Access-Control-Allow-Credentials' 'true';
}
rtmp {
server{
listen 1935;
chunk_size 4096;
application av {
play /home/guohua/av/;
}
application live {
live on;
}
}
}
vim /usr/local/nginx/conf/nginx.conf
log,配置log之后通过reload不生效,需要重启Nginx才行。
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main; #必须先创建 /var/log/nginx
error_log /var/log/nginx/err.log;
启动 /usr/local/nginx/sbin/nginx
停止 /usr/local/nginx/sbin/nginx -s stop
重新加载 /usr/local/nginx/sbin/nginx -s reload
root@ubuntu:/home/guohua/my-nginx/nginx-1.21.6# ls /usr/local/nginx/sbin/nginx -v
/usr/local/nginx/sbin/nginx
判断文件是否存在
if ( $uri ~* "^/resources/(.*)") {
set $tmpuri $1;
}
set $fileroot /NAS/wwwmps/;
if ( !-e $fileroot$tmpuri) {
rewrite ^/(.*)$ http://rackbeta.qsh1.cn/s3/$1 break;
break;
}
文章详细描述了在Ubuntu系统上下载并编译Nginx1.21.6,同时添加HTTPFLV模块的步骤。在编译过程中遇到了与rtmp模块的冲突,最终选择了保留FLV模块进行安装。配置中包括了FLV直播设置和RTMP服务器配置,并指出了部分配置如reload和log更新需要重启Nginx才能生效。
1058

被折叠的 条评论
为什么被折叠?



