本文介紹nginx出現504 gateway time-out問題的原因,分析問題並提供解決方法。 (主要看2)
1.問題分析
nginx訪問出現504 gateway time-out,一般是由於程式執行時間過長導致響應超時,例如程式需要執行90秒,而nginx最大響應等待時間為30秒,這樣就會出現超時。
通常有以下幾種情況導致
1.程式在處理大量資料,導致等待超時。
2.程式中呼叫外部請求,而外部請求響應超時。
3.連線資料庫失敗而沒有停止,死迴圈重新連。
出現這種情況,我們可以先優化程式,縮短執行時間。另一方面,可以調大nginx超時限制的引數,使程式可以正常執行。
對於訪問超時的設定,nginx與php都有相關的設定,可以逐一進行修改。
2.解決方法
nginx配置
nginx.conf中,設定以下幾個引數,增加超時時間
fastcgi_connect_timeout
fastcgi連線超時時間,預設60秒
fastcgi_send_timeout
nginx 程序向 fastcgi 程序傳送請求過程的超時時間,預設值60秒
fastcgi_read_timeout
fastcgi 程序向 nginx 程序傳送輸出過程的超時時間,預設值60秒
php配置
php.ini
max_execution_time
php指令碼最大執行時間
php-fpm
request_terminate_timeout
設定單個請求的超時時間
php程式中可加入set_time_limit(seconds)設定最長執行時間
例如 set_time_limit(0) 表示不超時。
伺服器超時時間和請求佇列大小設定
伺服器超時時間和請求列表大小關乎程式的健壯性。設定過小,會導致有效的請求被丟掉。設定過大,嚴重的情況下會引起雪崩。很多後台碼農對超時時間的設定都沒什麼概念,特別是剛畢業的後台碼農。一般都是參照前人的 設定乙個相同的超時,而且一般都是比較大的超時,只要程式能跑就沒問題了。後台服務基本上要設定兩個超時,...
linux伺服器後台設定小技巧
1.如何快速安裝遊戲伺服器 發布目錄所有遊戲新增之後,在遊戲發布目錄會生成乙個gamelist.ini,裡面就是記錄這個發布目錄的所有遊戲資訊。如果裝其他遊戲資源伺服器時,直接將這些遊戲按原來結bwyokz構放到乙個發布目錄下,www.cppcns.com然後直接將gamelist.ini放到發布目...
伺服器GPU檢視和設定
nvidia smi 週期性的輸出顯示卡的使用情況 watch n 10 nvidia smi命令列引數 n後邊跟的是執行命令的週期,以s為單位。1.中加入 import os os.environ cuda visible devices 1 注意 伺服器看到的gpu序號和手動在linux上檢視的...