狀況以下:用 nginx 做代理服務器,上傳大文件時(本人測試上傳50m的文件),提示上傳超時或文件過大。nginx
緣由是 nginx 對上傳文件大小有限制,並且默認是 1M。另外,若上傳文件很大,還要適當調整上傳超時時間。tomcat
解決方法是在 nginx 的配置文件下,加上如下配置:bash
client_max_body_size 50m; //文件大小限制,默認1m client_header_timeout 1m; client_body_timeout 1m; proxy_connect_timeout 60s; proxy_read_timeout 1m; proxy_send_timeout 1m;
各參數含義服務器
client_max_body_size # 限制請求體的大小,若超過所設定的大小,返回413錯誤 client_header_timeout # 讀取請求頭的超時時間,若超過所設定的大小,返回408錯誤 client_body_timeout # 讀取請求實體的超時時間,若超過所設定的大小,返回413錯誤 proxy_connect_timeout # http請求沒法當即被容器(tomcat, netty等)處理,被放在nginx的待處理池中等待被處理。此參數爲等待的最長時間,默認爲60秒,官方推薦最長不要超過75秒 proxy_read_timeout # http請求被容器(tomcat, netty等)處理後,nginx會等待處理結果,也就是容器返回的response。此參數即爲服務器響應時間,默認60秒 proxy_send_timeout # http請求被服務器處理完後,把數據傳返回給Nginx的用時,默認60秒