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

Django配合Nginx+uWSGI部署时.sock文件丢失及模块加载失败如何解决

核心问题原因

你的错误根源是uWSGI配置的路径和模块导入格式不符合Python规范,导致uWSGI加载Django应用失败,触发配置里的vacuum=true参数自动清理了sock文件,最终nginx找不到sock文件返回500错误。


解决步骤

1. 修正dolphin_uwsgi.ini配置

修改ini文件中以下两个参数:

# 把工作目录切换到manage.py所在的目录,Python才能正确识别内层的app包
chdir = /var/www/dolphin/app/
# module参数是Python模块导入格式,用点分隔,不能用斜杠,也不需要加.py后缀
module = app.wsgi

其余配置保持不变即可。

2. 确认Emperor模式加载配置

你执行的Emperor命令默认只会加载venv/vassals/目录下的ini配置,需要把你的项目配置软链接到该目录:

ln -s /var/www/dolphin/dolphin_uwsgi.ini /var/www/dolphin/venv/vassals/

3. 校验目录权限

确保www-data用户对项目目录有完整读写权限,避免出现sock创建失败、sqlite数据库无权限访问的问题:

sudo chown -R www-data:www-data /var/www/dolphin
sudo chmod -R 755 /var/www/dolphin

4. 重启服务验证

先杀掉已存在的uWSGI进程避免冲突:

sudo pkill -9 uwsgi

激活虚拟环境后重新启动Emperor:

source /var/www/dolphin/venv/bin/activate
uwsgi --emperor venv/vassals/ --uid www-data --gid www-data

等待3-5秒后查看项目根目录是否生成了dolphin.sock文件,再访问站点即可正常加载。


可选手动测试命令

如果要手动测试uWSGI是否能正常加载应用,执行以下命令即可:

cd /var/www/dolphin/app
uwsgi --socket ../dolphin.sock --module app.wsgi --chmod-socket=666

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:24:03