django upstream prematurely closed connection while reading response header from up

1. 环境

django + uwsgi + Nginx

2. 解决方式

1.必须要在uwsgi.ini中设置“limit-as”,该值是每个uwsgi进程占用的虚拟内存的最大限制。
2.检查是否设置了

proxy_http_version 1.1;
proxy_set_header Connection "";

Nginx默认使用HTTP1.0从后端获取响应返还给客户端,但是HTTP1.0不支持keepalive,因此需要配置proxy_http_version 1.1,proxy_set_header Connection默认close:通知后端服务器主动关闭连接,这样会导致任何一个客户端的请求都在后端服务器上产生了一个TIME-WAIT状态的连接。
3.检查uwsgi和Nginx中设置的各种timeout是否过短。

3. 参考资料

  1. https://www.cnblogs.com/succour/p/6305574.html
  2. https://www.cnblogs.com/jackluo/p/3410739.html
  3. https://monicalent.com/blog/2013/12/06/set-up-nginx-and-uwsgi/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django和uwsgi中,当读取上游服务器的响应头时,出现"upstream prematurely closed connection while reading response header from upstream"错误。这个错误通常表示与上游服务器的连接被意外关闭。这可能是由于上游服务器的问题,也可能是由于网络问题导致的连接中断。 解决这个问题的方法有以下几种[^1]: 1. 检查上游服务器:首先,确保上游服务器正常运行并且没有任何问题。可以尝试直接访问上游服务器的URL,以确认它是否能够正常响应请求。 2. 检查网络连接:检查网络连接是否稳定,并确保没有任何网络问题导致连接中断。可以尝试使用其他网络连接或者使用ping命令检查网络连接的稳定性。 3. 调整uwsgi配置:尝试调整uwsgi的配置参数,例如增加uwsgi的缓冲区大小或者调整uwsgi的超时时间,以适应上游服务器的响应速度。 4. 调整nginx配置:如果使用了nginx作为反向代理服务器,可以尝试调整nginx的配置参数,例如增加nginx的缓冲区大小或者调整nginx的超时时间,以适应上游服务器的响应速度。 5. 检查日志文件:查看相关的日志文件,例如uwsgi的日志文件或者nginx的错误日志文件,以获取更多关于错误的详细信息。 请注意,具体的解决方法可能因具体情况而异。建议根据实际情况逐步尝试上述方法,并根据错误日志和相关日志文件的内容进行排查和调试。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值