Gunicorn、Supervisor

简介

Gunicorn来源于Ruby的unicorn项目,是一个Python WSGI HTTP Server,经过pre-fork worker模型来管理和维护worker。html

简而言之就是经过多进程管理应用服务器,实现了对WSGI的功能拓展,好比IO处理模型是同步仍是异步、轮询机制、请求限制等等。shell

配置

参数配置服务器


Supervisor

咱们知道Gunicorn是一个wsgi服务器,它经过一个主进程控制、管理请求,可是若是这个主进程挂了怎么办?这就比如咱们使用nohup在后台运行一个应用服务器,可是若是主机重启或其余异常致使后台进程挂了,咱们是不可能及时重启服务器的。异步

这时Supervisor就颇有用了,Supervisor是一个进程管理软件,它能够根据你的要求执行命令行命令,设置log日志,自动重启挂掉的进程。命令行

一般是Supervisor与Gunicorn一块儿使用。rest

配置

# program.conf
[program:<program name>]
command=/usr/local/bin/gunicorn wsgi --bind <ip:port> --workers <2 * cpucores + 1> --worker-class gevent
directory=<program directory>
autostart=true
autorestart=true
stdout_logfile=<stdoutlog directory>
stderr_logfile=<stderrlog directory>

# supervisor 中文 bug
environment=LANG="en_US.utf8", LC_ALL="en_US.UTF-8", LC_LANG="en_US.UTF-8"
# 创建一个软连接
ln -s -f program.conf /etc/supervisor/conf.d/program.conf
# 重启supervisor以开启服务
service supervisor restart
相关文章
相关标签/搜索