天天看點

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;
           

起風了,努力生存