django项目通过supervisor进程管理工具部署
一、配置uwsgi.ini文件(我的django项目是通过uwsgi方式启动的)
# mysite_uwsgi.ini file
[uwsgi]
socket = 127.0.0.1:8000
chdir = /home/run/data/
# Django wsgi file
wsgi-file = project/wsgi.py
# master
master = true
# maximum number of worker processes
processes = 2
threads = 4
max-requests = 6000
chmod-socket = 664
# clear environment on exit
vacuum = true
stats = 0.0.0.0:9090
配置完之后可以通过命令uwsgi --ini mysite_uwsgi.ini命令,启动项目,能启证明配置是对的,否则根据报错信息解决。
二、安装并配置supervisord
supervisord的安装网上有很多教程,这里就不讲了;主要讲讲supervisord的配置,先找到supervisord配置文件在哪里,ubuntu在/etc/supervisor下,里面有一个supervisord.conf文件(默认配置文件)和conf.d文件夹(自定义配置文件夹);可以将配置写进supervisord.conf,或者也可以自定义配置文件,放到conf.d里,我的配置文件如下:
[program:project-ops]
command = uwsgi --ini /home/run/data/uwsgi.ini
directory = /home/run/data
autostart = true
autorestart = true
stdout_logfile = /var/log/project.log
stderr_logfile = /var/log/project_error.log
注意:
如果项目配置了虚拟环境,配置文件的command里一定要加上,虚拟环境的绝对路径,即:
command = uwsgi --ini /home/run/data/uwsgi.ini
改为:
command = /home/zz/.pyenv/versions/venv/bin/uwsgi --ini /home/run/data/uwsgi.ini
很重要!!!