nginx上傳文件大小報(bào)錯(cuò)500的解決辦法
nginx上傳文件大小報(bào)錯(cuò)500的解決辦法
采用nginx作反向代理,出現(xiàn)了一個(gè)詭異的問題,小文件可以提交,大文件會(huì)報(bào)500內(nèi)部錯(cuò)誤。這個(gè)是什么原因?qū)е碌哪兀?/p>
查wiki可知,上傳文件大小相關(guān)的有三個(gè)配置
- client_body_buffer_size 配置請求體緩存區(qū)大小, 不配的話,
- client_body_temp_path 設(shè)置臨時(shí)文件存放路徑。只有當(dāng)上傳的請求體超出緩存區(qū)大小時(shí),才會(huì)寫到臨時(shí)文件中
- client_max_body_size 設(shè)置上傳文件的最大值
所以查出來,問題出現(xiàn)的原因是
1.文件大小超過了client_body_buffer_size
2.client_body_temp_path的臨時(shí)文件路徑居然沒有寫權(quán)限
以上兩個(gè)原因?qū)е铝朔祷?00錯(cuò)誤。
如果上傳文件大小超過client_max_body_size時(shí),會(huì)報(bào)413 entity too large的錯(cuò)誤。
原因知道了,修正就簡單了。
1.client_body_buffer_size 盡量設(shè)置的大點(diǎn),這是基于速度的考慮,如果因?yàn)樵O(shè)置的過小,導(dǎo)致上傳的文件老要寫磁盤,那速度就太慢了。
2.client_body_temp_path 路徑要有可寫權(quán)限,這個(gè)是明顯的錯(cuò)誤了。改正了就好
3.client_max_body_size 設(shè)置上傳文件的最大值,這個(gè)是基于安全的考慮,我們認(rèn)為正常用戶不會(huì)或者基本不會(huì)上傳太大的文件。
可以設(shè)置為client_max_body_size 100m; 或者按照自己的業(yè)務(wù)來設(shè)置這個(gè)值。
以上就是nginx 文件上傳出錯(cuò)的解決辦法,如有疑問請留言或者到本站社區(qū)交流討論大家共同進(jìn)步,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
寶塔里nginx自動(dòng)停止的解決方法(檢測腳本實(shí)現(xiàn)每分鐘檢測并自動(dòng)啟用)
nginx突然停止的原因有多種,這里不列舉,可以排查具體原因,這里主要為大家分享nginx服務(wù)的檢測腳本,達(dá)到自動(dòng)啟用的實(shí)現(xiàn)2025-02-02
Nginx記錄分析響應(yīng)慢的請求及替換網(wǎng)站響應(yīng)內(nèi)容的配置
這篇文章主要介紹了Nginx記錄分析響應(yīng)慢的請求及替換網(wǎng)站響應(yīng)內(nèi)容的配置,分別用到了ngx_http_log_request_speed模塊和ngx_http_sub_module模塊,需要的朋友可以參考下2016-01-01
Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作
這篇文章主要介紹了Docker Nginx容器和Tomcat容器實(shí)現(xiàn)負(fù)載均衡與動(dòng)靜分離操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11
Laravel的Nginx重寫規(guī)則實(shí)例代碼
這篇文章主要介紹了Laravel的Nginx重寫規(guī)則實(shí)例代碼,需要的朋友可以參考下2017-09-09
nginx反向代理如何支持網(wǎng)址自動(dòng)添加斜線
這篇文章主要介紹了nginx反向代理如何支持網(wǎng)址自動(dòng)添加斜線問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
nginx進(jìn)行端口轉(zhuǎn)發(fā)的實(shí)現(xiàn)
本文主要介紹了nginx進(jìn)行端口轉(zhuǎn)發(fā)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03

