nginx傳輸大檔案時,504gateway 問題解決
阿新 • • 發佈:2018-12-18
在傳輸大檔案時,需要增加其響應超時時間,因為後臺服務還在進行資料處理,如果到了65s,nginx會把連線斷開,丟擲一個504超時異常顯示在前臺頁面。這個時候我們需要改變其響應超時時間達到我們需要的效果。檔案配置如下:
nginx.conf
http { #連線存活超時時間,預設為65s,如果下面需要修改,這個時候一定要與之相同或更大 keepalive_timeout 10m; #nginx跟後端伺服器連線超時時間(代理連線超時) proxy_connect_timeout 600s; #後端伺服器資料回傳時間(代理髮送超時) proxy_send_timeout 600s; #連線成功後,後端伺服器響應時間(代理接收超時) proxy_read_timeout 600s; #指定nginx與後端fastcgi server連線超時時間 fastcgi_connect_timeout 600s; #指定nginx向後端傳送請求超時時間(指已完成兩次握手後向fastcgi傳送請求超時時間) fastcgi_send_timeout 600s; #指定nginx向後端傳送響應超時時間(指已完成兩次握手後向fastcgi傳送響應超時時間) fastcgi_read_timeout 600s; include /etc/nginx/sites-enabled/*.conf; }
尾話:問題雖然解決了,但實際開發是不建議這麼做的,這樣做消耗太多nginx的效能,因為一個連線超時時間越長,他所佔連線的時間也越長,推薦使用任務管理的方式處理大檔案跑資料的問題,以佇列形式亦可。從其他方面解決,而不是選擇nginx增加連線超時時間解決。