Nginx

為接受文件上傳的 Web 應用優化 nginx client_body_buffer_size

  • February 4, 2019

配置 nginx 時,有哪些注意事項會影響client_body_buffer_size

我已將其設置10m為使用者上傳照片和圖像模因的網站(有點像9gag)。請注意,它client_max_body_size也設置10m為。總的來說,我的理由是網路伺服器應該接受帶有 10MB 大圖像的 POST 請求(網站策略)——因此這兩個指令都應該是10m.

這個推理正確嗎?

有人可以闡明影響要設置什麼值的因素client_body_buffer_size,以及client_body_buffer_size(對於我描述的那種 Web 應用程序)的典型值嗎?

萬一這很重要,我使用 nginx 作為反向代理。

文件說明了什麼client_body_buffer_size

設置讀取客戶端請求正文的緩衝區大小。如果請求正文大於緩衝區,則將整個正文或僅其部分寫入臨時文件。預設情況下,緩衝區大小等於兩個記憶體頁。這是 x86、其他 32 位平台和 x86-64 上的 8K。在其他 64 位平台上通常為 16K。

此記憶體僅在上傳請求時使用;一旦它被傳遞到後端,記憶體就會再次被釋放。如果請求大於此值,它將轉到臨時文件,並且錯誤日誌中會出現警告。

這意味著您必須有足夠的 RAM 來儲存任何同時上傳的內容,否則您的伺服器將開始交換。

這對性能的影響可能不是那麼大,除非您受到嚴重的記憶體限制並同時進行大量上傳。

引用自:https://serverfault.com/questions/875019