You need to enable JavaScript to run this app. 部署Django项目遇Nginx open socket报错及500错误求助
优惠活动
大模型
产品
解决方案
定价
更多

部署Django项目遇Nginx open socket报错及500错误求助

问题排查步骤
  • 先确认Gunicorn服务状态
    执行命令systemctl status gunicorn查看服务是否正常运行。如果服务启动失败,执行journalctl -u gunicorn查看Gunicorn运行日志,排查是否存在虚拟环境路径错误、项目目录权限不足、wsgi模块加载失败的问题。
  • 检查socket文件权限
    Nginx的默认运行用户为www-data,需要确保/var/www/lordplus/lordplus.sock文件的属组为www-data,且组用户拥有读写权限,可执行以下命令修正:
    chown runadmingen:www-data /var/www/lordplus/lordplus.sock
    chmod 660 /var/www/lordplus/lordplus.sock
    
    你遇到的Nginx open socket left报错基本都是上游Gunicorn连接异常、socket权限不足导致的。
  • 补全Nginx静态资源配置
    你当前的Nginx配置中location /static/和location /media/块为空,会导致静态资源请求异常,修正为对应路径的别名:
    location /static/ {
        alias /var/www/lordplus/static/;
    }
    location /media/ {
        alias /var/www/lordplus/media/;
    }
    
    配置完成后执行nginx -t校验语法,确认无误后执行systemctl reload nginx重载配置。
  • 校验Django项目配置
    1. 检查settings.py中的ALLOWED_HOSTS参数,必须添加你的域名www.domain.com,测试阶段可临时设置为['*'],DEBUG关闭状态下未配置该参数会直接返回500错误。
    2. 确认你已经执行python manage.py collectstatic收集了所有静态资源到配置的STATIC_ROOT目录,路径需要和Nginx中static的别名路径一致。
    3. 重置系统后确认已完成数据库迁移,执行python manage.py migrate更新数据库结构。
  • 直接测试Gunicorn服务
    执行命令curl --unix-socket /var/www/lordplus/lordplus.sock http://localhost,如果能正常返回页面内容,说明Gunicorn和Django本身无问题,故障点在Nginx侧;如果返回错误,直接根据错误提示排查Django项目本身的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 04:48:02