nginx配置关闭chunked


前情提要

后台有个语音流需要传给前端,注意,不是语音文件。如果是语音文件的话,可以直接使用这个chunked参数,实现视频或者音频的分段播放。

现在的问题是我们是拿到的一个音频流,要传给前端还必须是keep-alive模式。经过nginx转发的时候,nginx默认开启了chunked这个模块,造成的结果是前端用vedio原生组件接这个音频流,没有进度条。

为了实现有进度条,我们需要在响应头里面包含content-range、content-length这几个头,而content-length又和transfer-encoding头冲突了,所以造成了没有进度条的问题。

百度+谷歌

找资料如下:

  1. 第一步找资料,看为什么content-length没有生效,发现是transfer-encoding分段传输的问题
    取消掉Transfer-Encoding:chunked
    Nginx与HTTP协议,content-length

  2. 第二部找资料,关闭transfer-encoding或者客户端请求使用http1.0
    nginx配置关闭chunked

解决方案

一行代码关闭chunked

chunked_transfer_encoding off;


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM