Nginx 上傳大文件超時解決辦法
情況如下:用nginx作代理服務(wù)器,上傳大文件時(本人測試上傳50m的文件),提示上傳超時或文件過大。
原因是nginx對上傳文件大小有限制,而且默認(rèn)是1M。另外,若上傳文件很大,還要適當(dāng)調(diào)整上傳超時時間。
解決方法是在nginx的配置文件下,加上以下配置:
client_max_body_size 50m; //文件大小限制,默認(rèn)1m
client_header_timeout 1m;
client_body_timeout 1m;
proxy_connect_timeout 60s;
proxy_read_timeout 1m;
proxy_send_timeout 1m;
每個參數(shù)的意思:
client_max_body_size
限制請求體的大小,若超過所設(shè)定的大小,返回413錯誤。
client_header_timeout
讀取請求頭的超時時間,若超過所設(shè)定的大小,返回408錯誤。
client_body_timeout
讀取請求實體的超時時間,若超過所設(shè)定的大小,返回413錯誤。
proxy_connect_timeout
http請求無法立即被容器(tomcat, netty等)處理,被放在nginx的待處理池中等待被處理。此參數(shù)為等待的最長時間,默認(rèn)為60秒,官方推薦最長不要超過75秒。
proxy_read_timeout
http請求被容器(tomcat, netty等)處理后,nginx會等待處理結(jié)果,也就是容器返回的response。此參數(shù)即為服務(wù)器響應(yīng)時間,默認(rèn)60秒。
proxy_send_timeout