Gunicorn、Supervisor

简介

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

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

配置

参数配置


Supervisor

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

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

通常是Supervisor与Gunicorn一起使用。

配置

# 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

猜你喜欢

转载自www.cnblogs.com/ikct2017/p/9614029.html
今日推荐