前情提要
背景有個語音流需要傳給前端,注意,不是語音檔案。如果是語音檔案的話,可以直接使用這個chunked參數,實作視訊或者音頻的分段播放。
現在的問題是我們是拿到的一個音頻流,要傳給前端還必須是keep-alive模式。經過nginx轉發的時候,nginx預設開啟了chunked這個子產品,造成的結果是前端用vedio原生元件接這個音頻流,沒有進度條。
為了實作有進度條,我們需要在響應頭裡面包含content-range、content-length這幾個頭,而content-length又和transfer-encoding頭沖突了,是以造成了沒有進度條的問題。
百度+谷歌
找資料如下:
-
第一步找資料,看為什麼content-length沒有生效,發現是transfer-encoding分段傳輸的問題
取消掉Transfer-Encoding:chunked
Nginx與HTTP協定,content-length
-
第二部找資料,關閉transfer-encoding或者用戶端請求使用http1.0
nginx配置關閉chunked
解決方案
一行代碼關閉chunked
chunked_transfer_encoding off;
起風了,努力生存