記錄一次504超時的解決方案


環境:django + uwsgi + nginx

nginx報錯如下:

2017/03/30 20:23:38 [error] 256846#0: *34209 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 127.0.0.1, server: devops.jd.com, request: "POST /api/recv_cmdbfile/ HTTP/1.1", upstream: "uwsgi://unix:/export/App/DevOPS/Python_20160906/Python_20160906.sock", host: "127.0.0.1"

發現nginx連接后端connection timed out

解決方案:1,調大uwsgi的超時參數設置,
http-timeout = 1080
socket-timeout = 1080

重啟uwsgi發現故障依舊,新加參數刪除

解決方案2:調大nginx的超時參數設置
proxy_connect_timeout           1080;
proxy_read_timeout              1080;
proxy_send_timeout              1080;

重啟nginx發現故障依舊,新加參數刪除

解決方案3:在想是不是django框架里面有超時限制,發現並沒有
解決方案4:后來看nginx官方文檔,發現proxy_read_time針對的是反向代理轉發的超時,不是uwsgi的超時,
uwsgi_send_timeout 1060;        # 指定連接到后端uWSGI的超時時間。
uwsgi_connect_timeout 1060;   # 指定向uWSGI傳送請求的超時時間,完成握手后向uWSGI傳送請求的超時時間。
uwsgi_read_timeout 1060;        # 指定接收uWSGI應答的超時時間,完成握手后接收uWSGI應答的超時時間。

重啟nginx,504不在,nginx了解的還不深入


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM