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

Linode Ubuntu14.04部署Mezzanine/Django:502错误与.sock文件缺失求助

解决Ubuntu 14.04上Mezzanine/Django部署的502 Bad Gateway(.sock不存在)问题

嘿,这个502错误本质就是Nginx找不到uWSGI生成的.sock套接字文件,没法和后端的Django应用通信。咱们一步步来排查解决:

1. 先确认uWSGI是不是真的在运行

首先检查uWSGI进程有没有启动起来,敲这个命令:

ps aux | grep uwsgi

如果看不到任何和uWSGI相关的进程,说明它根本没启动成功。那咱们手动启动试试,先进入你的虚拟环境:

cd /home/django/FOLDER
source Env/bin/activate
uwsgi --ini 你的uWSGI配置文件名.ini  # 比如uwsgi.ini或者项目名.ini

启动的时候注意看终端输出的报错,比如找不到Django模块、权限不足这些,都会导致uWSGI启动失败,自然生成不了.sock文件。

2. 核对.sock文件的路径配置

不管是uWSGI的配置还是Nginx的配置,路径必须完全一致,一点错都不能有:

  • 打开你的uWSGI配置文件(比如uwsgi.ini),找到socket项,确保路径是对的,比如:
    socket = /home/django/FOLDER/FOLDER.sock  # 注意你有两层FOLDER目录,别搞混
    
  • 再打开Nginx的站点配置文件(比如/etc/nginx/sites-available/你的站点名),找到uwsgi_pass这一行:
    uwsgi_pass unix:/home/django/FOLDER/FOLDER.sock;
    

一定要检查路径里的大小写、目录层级,别把内层的FOLDER漏写或者写错了。

3. 检查.sock文件的权限问题

就算uWSGI启动了,如果.sock文件的权限不对,Nginx也没法访问它:

  • 最好让uWSGI以Nginx的用户组运行,在uWSGI配置里加上这两行:
    uid = www-data
    gid = www-data
    
    这样生成的.sock文件权限会自动适配Nginx的访问需求。
  • 如果已经生成了.sock但权限不对,手动调整试试:
    chmod 664 /path/to/你的.sock文件
    chown www-data:www-data /path/to/你的.sock文件
    

4. 查看uWSGI日志找细节

要是前面的步骤都没解决问题,去看uWSGI的日志文件(配置里的logto项指定了路径),里面会有详细的启动失败原因,比如:

  • chdir路径没设对:要指向包含manage.py的那个内层FOLDER目录
  • 虚拟环境没配置:uWSGI配置里要加home = /home/django/FOLDER/Env指定虚拟环境路径
  • 套接字被占用:换个.sock路径或者杀掉占用进程

5. 修改配置后记得重启服务

每次改完uWSGI或Nginx的配置,都要重启服务生效:

sudo service nginx restart
sudo service uwsgi restart  # 如果你用了系统服务管理的话,否则先杀掉旧进程再启动

要是还是卡壳,把uWSGI启动时的报错信息、配置文件里的关键片段贴出来,能更快定位问题哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:01:35