Nginx 413 Request Entity Too Large解決方法

  1. 問題描述
    管理後臺使用spring boot +vue的組合形式,上傳一個2mb圖片的時候出現瞭如下圖所示錯誤:413 Request Entity Too Large
    圖片上傳錯誤

  2. 問題排查

    1. spring boot配置有誤?
      遇到這個問題第一直覺是檢查spring boot的文件上傳配置,spring boot配置:

      spring:
      	servlet:
      	    multipart:
      	      max-file-size: 5mb
      	      max-request-size: 10mb
      

      spring boot配置的的最大文件是5mb,但是我上次的文件只有2mb,並且在使用postman調試本地服務接口的時候是可以上傳這個2mb的圖片。所以排除spring boot的配置錯誤。

    2. 前端是否使用了node.js進行請求轉發,轉發過程中做了限制?
      前端同學告知node.js轉發的過程中不做限制處理,所以排除node.js轉發的做了限制

    3. 服務端nginx轉發請求做了限制?
      使用postman直接請求線上接口,發現請求依舊是413 Request Entity Too Large,確定了是nginx的問題,因爲請求本地服務接口時候是正常的(沒有經過nginx轉發),但是請求線上接口(經過nginx轉發)會報413的錯誤

  3. 問題修復
    在找到nginx的配置文件–nginx.conf,在配置文件的http節點中加上(或者修改)client_max_body_size的值,然後nginx重新reload配置即可,設置如下:

    	http {
    	...省略其他信息
    	client_max_body_size : 10mb
    	...
    	}
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章