Nginx
為接受文件上傳的 Web 應用優化 nginx client_body_buffer_size
配置 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 來儲存任何同時上傳的內容,否則您的伺服器將開始交換。
這對性能的影響可能不是那麼大,除非您受到嚴重的記憶體限制並同時進行大量上傳。