springboot檔案上傳 注意配置

2021-10-07 16:59:20 字數 2856 閱讀 9961

spring boot1.4版本後配置更改為:

spring boot2.0之後的版本配置修改為:

spring.servlet.multipart.max-file-size = 10mb

spring.servlet.multipart.max-request-size=100mb

zuul:

1、設定增加負載和熔斷超時時間。

2、再請求路徑上加上  /zuul  的字首,ok,預設不做超時限制了

nginx:

可以選擇在http中設定:client_max_body_size   20m;

也可以選擇在server中設定:client_max_body_size   20m;

還可以選擇在location中設定:client_max_body_size   20m;

超時配置:

nginx常用的超時配置說明

client_header_timeout

預設值 60s上下文 http server說明 指定等待client傳送乙個請求頭的超時時間(例如:get / http/1.1).僅當在一次read中,沒有收到請求頭,才會算成超時。如果在超時時間內,client沒傳送任何東西,nginx返回http狀態碼408(「request timed out」)

client_body_timeout

語法 client_body_timeout time

預設值 60s

上下文 http server location

說明 該指令設定請求體(request body)的讀超時時間。僅當在一次readstep中,沒有得到請求體,就會設為超時。超時後,nginx返回http狀態碼408(「request timed out」)

keepalive_timeout

語法 keepalive_timeout timeout [ header_timeout ]

預設值 75s

上下文 http server location

說明 第乙個引數指定了與client的keep-alive連線超時時間。伺服器將會在這個時間後關閉連線。可選的第二個引數指定了在響應頭keep-alive: timeout=time中的time值。這個頭能夠讓一些瀏覽器主動關閉連線,這樣伺服器就不必要去關閉連線了。沒有這個引數,nginx不會傳送keep-alive響應頭(儘管並不是由這個頭來決定連線是否「keep-alive」)

兩個引數的值可並不相同

注意不同瀏覽器怎麼處理「keep-alive」頭

msie和opera忽略掉"keep-alive: timeout=" header.

msie保持連線大約60-65秒,然後傳送tcp rst

opera永久保持長連線

mozilla keeps the connection alive for n plus about 1-10 seconds.

konqueror保持長連線n秒

lingering_timeout

語法 lingering_timeout time

預設值 5s

上下文 http server location

說明 lingering_close生效後,在關閉連線前,會檢測是否有使用者傳送的資料到達伺服器,如果超過lingering_timeout時間後還沒有資料可讀,就直接關閉連線;否則,必須在讀取完連線緩衝區上的資料並丟棄掉後才會關閉連線。

resolver_timeout

語法 resolver_timeout time 

預設值 30s

上下文 http server location

說明 該指令設定dns解析超時時間

proxy_connect_timeout

語法 proxy_connect_timeout time 

預設值 60s

上下文 http server location

說明 該指令設定與upstream server的連線超時時間,有必要記住,這個超時不能超過75秒。

這個不是等待後端返回頁面的時間,那是由proxy_read_timeout宣告的。如果你的upstream伺服器起來了,但是hanging住了(例如,沒有足夠的執行緒處理請求,所以把你的請求放到請求池裡稍後處理),那麼這個宣告是沒有用的,由於與upstream伺服器的連線已經建立了。

proxy_read_timeout

語法 proxy_read_timeout time 

預設值 60s

上下文 http server location

說明 該指令設定與**伺服器的讀超時時間。它決定了nginx會等待多長時間來獲得請求的響應。這個時間不是獲得整個response的時間,而是兩次reading操作的時間。

proxy_send_timeout

語法 proxy_send_timeout time 

預設值 60s

上下文 http server location

說明 這個指定設定了傳送請求給upstream伺服器的超時時間。超時設定不是為了整個傳送期間,而是在兩次write操作期間。如果超時後,upstream沒有收到新的資料,nginx會關閉連線

proxy_upstream_fail_timeout(fail_timeout)

語法 server address [fail_timeout=30s]

預設值 10s

上下文 upstream

說明 upstream模組下 server指令的引數,設定了某乙個upstream後端失敗了指定次數(max_fails)後,該後端不可操作的時間,預設為10秒

Spring Boot上傳檔案

spring boot上傳檔案只需要在controller的方法上設定乙個multipartfile 引數即可,當然可以用 requestparam指定方法名,如果是上傳多個file時,可以使用陣列,另外也可以用乙個成員變數為multipartfile的類來接收檔案和其他引數。為了演示它,我們需要有...

SpringBoot檔案上傳

spring提供了兩個multipartresolver的實現用於處理multipart請求 commonsmultipartresolver standardservletmultipartresolver commonsmultipartresolver使用commons fileupload來...

Springboot上傳檔案

controler層裡面 內容 responsebody public string uploadimgcontroller requestparam value img multipartfile img catch exception e return 上傳成功 new file裡面的路徑是檔案...