天天看點

Django+uwsgi+Nginx 504 Gateway Time out

Django+uwsgi+Nginx 504 Gateway Time out

遇到504錯誤,加了好多列印資訊,發現列印出來都沒毛病。

接着猜想是正式環境的資料和本地測試環境的資料不一樣,又把正式環境的資料導回到本地測試,結果發現兩者列印資訊一模一樣,但本地就可以正常打開網頁,而正式環境就報504錯誤。

在對比了日志之後,發現正式環境的日志打到了某一處就沒了,猜想這個時候應該是某個逾時機制生效導緻程式不再往下走了。

一開始找了好多答案,有說nginx.conf裡設定fastcgi逾時時間的

fastcgi_connect_timeout 300s;

fastcgi_send_timeout 300s;

fastcgi_read_timeout 300s;

但設定了之後發現沒用,最後在https://blog.csdn.net/tmpbook/article/details/43734699這篇文章中找到答案——

原來我的nginx配置檔案裡設定了uwsgi_read_timeout為2秒

Django+uwsgi+Nginx 504 Gateway Time out

把它改大一點就OK了。

啟發:

這次找Bug浪費了大半天時間,如果一早先排查正式配置檔案,就可以避免做無用功。看到傳回碼504,應該先排查一遍環境的逾時配置。