记录一次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了解的还不深入

posted @   SpecialSpeculator  阅读(4549)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示