django部署之supervisor安装使用

在之前的文章中,我们讲过使用nginx和Gunicorn来部署网站,如果已经成功完成了前两步,那么你的网站已经可以通过域名或者IP进行访问了。
但是,你会注意到,在Gunicorn的启动后,它会一直在服务器上挂着,如果你关闭页面,或者服务器重启崩溃等,就会导致Gunicorn不再运行,可以尝试在后台启动Gunicorn,但是也有可能在服务器崩溃后,无法自行启动,下面,我们使用一个软件,supervisor来为我们执行启动的和维持的功能。

  1. 安装
    在虚拟环境下,执行:
pip install supervisor
  1. 创建surpervisor的管理目录
    创建一个~/etc的目录:(注意,这个目录名字很像ubuntu系统下的/etc,但是不是,请注意这个 ~/etc的目录是在/home/user下的一个路径,不要搞错)
mkdir ~/etc

继续创建

mkdir -p ~/etc/supervisor/conf.d
mkdir -p ~/etc/supervisor/var/log

然后,进入~/etc目录:

cd ~/etc

生成 Supervisor 的配置文件:

echo_supervisord_conf > supervisord.conf

修改 supervisord.conf,让 Supervisor 进程产生的一些文件生成到上面我们创建的目录下,而不是其默认指定的地方:

vim supervisord.conf

首先找到 [unix_http_server] 版块,将 file 设置改为如下的值:

file=/home/user/etc/supervisor/var/supervisor.sock

修改 [supervisord] 板块下的 logfile 和 pidfile 文件的路径,还有 user 改为系统用户:

logfile=/home/user/etc/supervisor/var/log/supervisord.log
pidfile=/home/user/etc/supervisor/var/supervisord.pid
user=user#user前面如果有;,去掉;

还有 [supervisorctl] 板块下:

serverurl=unix:///home/user/etc/supervisor/var/supervisor.sock

[include] 版块:

files = /home/user/etc/supervisor/conf.d/*.ini#去掉include和files前面的;号

ok后,:wq保存退出。
接下来,进入conf.d:

cd supervisor/conf.d
vim blog.ini

创建 blog.ini文件,并写入:

[program:blog]#程序名称
command=gunicorn --bind unix:/tmp/IP或者域名.socket 项目.wsgi:application #此为gunicorn启动命令
directory=/home/user/+项目路径
autostart=true
autorestart=unexpected
user=user
stdout_logfile=/home/user/etc/supervisor/var/log/blog-stdout.log
stderr_logfile=/home/user/etc/supervisor/var/log/blog-stderr.log
#log 为日志,后面supervisor启动出错的话,可以cat+日志查看报错原因

注意,以上注释,不需要填入文件中,可能会引起错误,完成后:wq保存退出

启动surpervisor:

supervisord -c ~/etc/supervisord.conf #-c 指定 Supervisr 启动时的配置文件
supervisorctl -c ~/etc/supervisord.conf #进入 supervisorctl 进程管理控制台:
进入后,输入update,进行更新,后输入quit,退出

这样,就可以在浏览器中输入你的域名或者ip了,首页就出现了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值