You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask+Nginx部署时上游连接提前关闭问题求助

解决Nginx + uWSGI + Flask中长请求被提前断开的问题

我之前也碰到过一模一样的情况!你已经在Nginx里调了proxy_read_timeout这类超时参数,但问题依然存在,核心原因大概率是uWSGI本身的超时限制没跟上——毕竟你的SQL查询要跑1分钟,而uWSGI默认的超时阈值通常比这个短很多,它会主动断开超时的请求,导致Nginx报出那个错误。

下面是具体的解决步骤:

  • 修改uWSGI的超时配置
    找到你的uWSGI配置文件(通常是项目根目录下的xxx.ini,或者系统级的配置文件),添加或调整以下参数:

    # 允许请求最长运行120秒(比你的1分钟查询留足余量)
    harakiri-timeout = 120
    # Socket连接超时时间匹配上面的设置
    socket-timeout = 120
    # 开启日志方便排查后续问题
    disable-logging = false
    

    如果是用命令行直接启动uWSGI的,就把这些参数加进去:

    uwsgi --socket /home/hleggio/myproject/myproject.sock --harakiri 120 --socket-timeout 120 --module myproject:app
    
  • 确认Flask端无额外超时设置
    你用Flask测试服务器没问题,这个可能性不大,但可以快速检查下有没有给/order-history接口加过超时装饰器,或者全局设置了请求超时。

  • 重启服务让配置生效
    修改完配置后,记得重启uWSGI和Nginx:

    sudo systemctl restart uwsgi
    sudo systemctl restart nginx
    

补充排查点

如果还是没解决,去看uWSGI的日志(一般在/var/log/uwsgi/或者你自定义的日志路径),里面会明确记录断开请求的原因——比如是不是内存不足导致进程被杀死,或者SQL查询本身有异常。

内容的提问来源于stack exchange,提问作者Harrison

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:23:10