Nginx实现对chunk请求支持

    HTTP协议有一种分块传输编码的机制(chunked Transfer Encoding),即一个HTTP消息可以分成多个部分进行传输。它对HTTP请求和HTTP响应都是适用的。但是目前的nginx版本只支持chunked响应而不支持请求,如果收到chunked请求的话会返回411错误。

    开启nginx对chunked请求的办法的有2种:

    1.nginx-1.3.9 development version has been released, with support for chunked transfer encoding while reading client request body.

    2.加载一个第三方的模块,这个模块是淘宝的开发人员做的,感叹淘宝技术之强大。

      http://wiki.nginx.org/HttpChunkinModule

 

  1. server { 
  2.   chunkin on; 
  3.  
  4.   error_page 411 = @my_411_error; 
  5.   location @my_411_error { 
  6.       chunkin_resume; 
  7.   } 

此方法已经在生产环境应用,运行良好。 

nginx的Mainline version、Stable version、Legacy version的版本区别

 

Nginx官网提供了三个类型的版本
Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版

nginx下载地址:http://nginx.org/en/download.html

A: 要使用nginx实现http-flv推流,需要按照以下步骤: 1.安装nginx和rtmp-module   首先需要安装nginx和rtmp-module。可以参考以下资料进行下载和安装。   nginx官网:http://nginx.org/   rtmp-module官网:https://github.com/arut/nginx-rtmp-module 2.配置nginx.conf文件   在nginx.conf文件中,需要添加以下配置信息。其中,flv、live和stream是自定义的,可以根据需要修改。 rtmp { server { listen 1935; #监听端口 chunk_size 4096; #设置chunk_size大小 application flv { live on; #启用直播模式 allow publish all; #允许推流 deny play all; #禁止播放 push_reconnect off; #关闭推流断开重连 hls off; #关闭hls flv_metadata on; #开启flv的metadata信息 wait_key on; #开启wait_key exec_pull ffmpeg -i rtmp://xxxx/$app/$name -vcodec libx264 -vprofile baseline -s 720x576 -acodec libfaac -ar 44100 -f flv rtmp://xxxx/flv/$name; #开启转码功能,实现兼容性 notify_method get; #推流成功后,请求指定地址 notify_update http://xxxx/stream/$app/$name; } } } http { server { listen 80; #监听端口 location /live { flv_live on; #开启http-flv推流 chunked_transfer_encoding on; #开启chunked传输 add_header 'Access-Control-Allow-Origin' '*'; #跨域 add_header 'Allow' 'GET, POST, OPTIONS'; #允许的http方法 add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; #允许跨域的方法 add_header 'Access-Control-Allow-Headers' 'Origin, X-Requested-With, Content-Type, Accept'; #允许跨域的请求头 } } } 3.启动nginx   将修改后的nginx.conf文件保存,使用以下命令启动nginx。 sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 4.推流   使用推流软件(如OBS)等工具,将视频流推送到rtmp://localhost/flv/{stream_name}的地址,即可在http://localhost/live/{stream_name}.flv,通过http-flv协议播放推送的视频流。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值