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

Nginx未转发请求至Django:前后端部署超时问题排查

解决Django后端请求超时问题

你的核心问题出在Nginx对Django路径的匹配规则误用,再加上Gunicorn配置里的一个小语法错误,我来一步步帮你搞定:

问题根源分析

  1. Nginx精确匹配的误用:你在Django的Nginx配置里用了location = /、location = /static/这类带=的规则,=代表精确匹配——只有当请求路径和配置的路径完全一致时才会生效。比如:
    • 只有访问ADDRESS:8800/时才会走Gunicorn代理
    • 访问ADDRESS:8800/suburl、ADDRESS:8800/media/xxx时,Nginx找不到对应的处理规则,就会一直等待直到超时
  2. Gunicorn配置的语法错误:你的ExecStart里-- bind多了一个空格,应该是--bind,这会导致Gunicorn无法正确绑定Unix socket,也是请求失败的潜在原因

修复步骤

1. 修正Django的Nginx配置

把带=的路径匹配(除了单个文件的favicon.ico)改成普通匹配,修改后的配置如下:

listen 8800;
server_name ADDRESS;

# 精确匹配单个favicon文件,这个可以保留=
location = /favicon.ico {
    access_log off;
    log_not_found off;
}

# 匹配所有以/static/开头的请求,去掉=
location /static/ {
    root /home/ubuntu/django/dbsystem;
}

# 匹配所有以/media/开头的请求,去掉=
location /media/ {
    root /home/ubuntu/django/dbsystem;
}

# 匹配所有其他请求,转发到Gunicorn的socket,去掉=
location / {
    include proxy_params;
    proxy_pass http://unix:/home/ubuntu/django/dbsystem/dbsystem.sock;
}

2. 修正Gunicorn配置的语法错误

把-- bind改成--bind(去掉空格),修改后的Gunicorn配置:

[Unit]
Description=gunicorn service
After=network.target

[Service]
User=ubuntu
Group=www-data
WorkingDirectory=/home/ubuntu/django/dbsystem/
# 修正-- bind为--bind
ExecStart=/home/ubuntu/django/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/ubuntu/django/dbsystem/dbsystem.sock dbsystem.wsgi:application

[Install]
WantedBy=multi-user.target

3. 重启服务使配置生效

执行以下命令重启Gunicorn和Nginx:

# 重启Gunicorn
sudo systemctl restart gunicorn
# 重启Nginx
sudo systemctl restart nginx

验证与排查

完成上述修改后,你可以:

  • 访问ADDRESS:8800/suburl,应该能正常触发Django的路由处理
  • 访问ADDRESS:8800/media/xxx(替换成你实际的媒体文件路径),应该能正确加载文件
    如果还是有问题,可以做以下排查:
  • 检查Gunicorn状态:sudo systemctl status gunicorn,确认服务正常运行
  • 检查Nginx配置语法:sudo nginx -t,确保没有语法错误
  • 查看Nginx错误日志:sudo tail -f /var/log/nginx/error.log,查看是否有具体的错误提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:30:11