nginx上傳文件大小限制修改

採用nginx作反向代理,出現了一個詭異的問題,小文件可以提交,大文件會報500內部錯誤。這個是什麼原因導致的呢?

   查wiki可知,上傳文件大小相關的有三個配置

client_body_buffer_size 配置請求體緩存區大小, 不配的話,

client_body_temp_path 設置臨時文件存放路徑。只有當上傳的請求體超出緩存區大小時,纔會寫到臨時文件中

client_max_body_size 設置上傳文件的最大值


所以查出來,問題出現的原因是

1.文件大小超過了client_body_buffer_size

2.client_body_temp_path的臨時文件路徑居然沒有寫權限

以上兩個原因導致了返回500錯誤。


如果上傳文件大小超過client_max_body_size時,會報413 entity too large的錯誤。


原因知道了,修正就簡單了。

1.client_body_buffer_size 儘量設置的大點,這是基於速度的考慮,如果因爲設置的過小,導致上傳的文件老要寫磁盤,那速度就太慢了。

2.client_body_temp_path 路徑要有可寫權限,這個是明顯的錯誤了。改正了就好

3.client_max_body_size 設置上傳文件的最大值,這個是基於安全的考慮,我們認爲正常用戶不會或者基本不會上傳太大的文件。

可以設置爲client_max_body_size 100m;  或者按照自己的業務來設置這個值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章