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

如何在AWS EC2实例中处理超过60秒的长请求?解决Django应用504网关超时问题

解决EC2上Django长请求504网关超时问题

我之前也踩过一模一样的坑!你全局Nginx配置里虽然把各种超时参数拉得很高,但这些全局设置并没有覆盖到具体站点的location配置块——这是Nginx配置里很容易忽略的优先级问题。

问题根源

Nginx的配置优先级是:location块 > server块 > http全局块。默认情况下,proxy_read_timeout的默认值是60秒,如果你在具体的站点location配置里没有明确覆盖这个值,哪怕全局设置了86400秒,请求到了这个location还是会用60秒的超时限制,这就是长请求触发504错误的原因。

具体解决步骤

  • 打开你的Django站点对应的Nginx配置文件:
    sudo nano /etc/nginx/sites-enabled/mydjango
    
  • 找到处理根路径的location / { }配置块,在里面添加超时设置(可以根据业务需求调整时长,比如60分钟或者300秒):
    location / {
        # 保留你原本的其他配置(比如proxy_pass、proxy_set_header等)
        proxy_read_timeout 60m; # 设置足够覆盖长请求的超时时间
    }
    
  • 保存配置后,重启Nginx让修改生效:
    sudo systemctl restart nginx
    

调整完成后,Nginx就会按照你设置的时长等待Django返回响应,不会再提前触发504超时了。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 20:37:29