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

以root身份通过sudo启动uWSGI时网站报502错误的排查与解决

Nginx + Django + uWSGI:sudo切换用户启动uWSGI引发502 Bad Gateway的解决方法

问题场景

按官方文档配置Nginx、Django和uWSGI后,出现如下异常:

  • 直接以普通用户lunchspace运行自定义启动脚本时,uWSGI启动正常,网站可正常访问
  • 以root身份通过sudo -iu lunchspace /home/lunchspace/runuwsgi切换用户启动uWSGI时,网站返回502 Bad Gateway

启动脚本内容:

#!/bin/bash
cd /home/lunchspace/FridayLunch/
uwsgi --ini lunchspace_uswgi.ini
#uwsgi --socket /home/lunchspace/lunchspace.sock --module FridayLunches.wsgi 
#uwsgi --emperor /etc/uwsgi/vassals

排查过程

  1. 查看Nginx日志,确认请求已成功转发到指定的socket文件
  2. 检查socket文件存在,但权限为srwxr-xr-x,Nginx进程对该socket无读写权限
  3. 临时将socket权限改为777后,网站恢复正常,锁定问题根源为socket权限配置

解决方案

在uWSGI的ini配置文件中,显式设置socket的权限,确保Nginx进程可以读写该socket:

# 在lunchspace_uswgi.ini中添加以下配置
socket = /home/lunchspace/lunchspace.sock
chmod-socket = 664

备注:如果Nginx进程所属用户(如www-data或nginx)与uWSGI运行用户lunchspace属于同一组,664权限足够;若不在同一组,可根据实际情况调整用户组归属,或临时使用666权限(不推荐生产环境)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 18:01:18