Nginx搭配Gunicorn部署Django项目时出现Gunicorn Error 203求助
Django项目部署Gunicorn Error 203故障排查
基础部署环境信息
- 项目安装路径:
/webapps/sarlex - 项目文件权限:所有项目文件归属用户
sarlex,所属用户组webapps - 虚拟环境路径:
/webapps/sarlex/environment - Gunicorn可执行文件路径:
/webapps/sarlex/environment/bin/目录下,文件归属用户sarlex所有 - 故障现象:服务启动阶段触发Gunicorn Error 203错误,配套验证材料包含Gunicorn报错截图、Gunicorn程序路径校验截图
启动脚本配置内容
Gunicorn启动脚本路径为/webapps/sarlex/gunicorn_start.sh,脚本内的启动参数配置如下:
NAME="sarlex" # 应用名称 DJANGODIR=/webapps/sarlex/ # Django项目根目录 SOCKFILE=/webapps/sarlex/run/gunicorn.sock # 用于进程通信的Unix套接字文件路径 USER=sarlex # Gunicorn运行所属用户 GROUP=webapps # Gunicorn运行所属用户组 NUM_WORKERS=9 # Gunicorn启动的工作进程数量 DJANGO_SETTINGS_MODULE=sarlex.settings # Django加载的配置模块路径 DJANGO_WSGI_MODULE=sarlex.wsgi # WSGI模块路径 echo "Starting $NAME as `whoami`" # 激活虚拟环境 cd $DJANGODIR source /webapps/sarlex/environment/bin/activate export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE export PYTHONPATH=$DJANGODIR:$PYTHONPATH # 若套接字文件所在目录不存在则自动创建 RUNDIR=$(dirname $SOCKFILE) test -d $RUNDIR || mkdir -p $RUNDIR # 启动Gunicorn服务 exec gunicorn ${DJANGO_WSGI_MODULE}:application \ --name $NAME \ --workers $NUM_WORKERS \ --user=$USER --group=$GROUP \ --bind=unix:$SOCKFILE \ --log-level=debug \ --log-file=-
已完成的验证操作
- 手动运行测试:无论是否预先激活虚拟环境,手动执行
gunicorn_start.sh脚本均可正常运行 - systemd服务配置:服务文件路径为
/etc/systemd/system/gunicorn.service,文件归属root用户,配置内容如下:
[Unit] Description=gunicorn daemon After=network.target [Service] User=sarlex Group=webapps WorkingDirectory=/webapps/sarlex ExecStart=/webapps/sarlex/gunicorn_start.sh [Install] WantedBy=multi-user.target
- 权限变量测试:曾尝试将服务配置中的运行用户从
sarlex修改为root,仍出现相同错误 - 程序路径校验:已确认系统加载调用的是虚拟环境正确路径下的Gunicorn可执行程序
问题诉求
定位排查当前Error 203错误的根因。
内容的提问来源于stack exchange,提问作者sascha2014
相关产品推荐
相关产品推荐

