1. 程式人生 > >nginx傳輸大檔案時,504gateway 問題解決

nginx傳輸大檔案時,504gateway 問題解決

在傳輸大檔案時,需要增加其響應超時時間,因為後臺服務還在進行資料處理,如果到了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增加連線超時時間解決。