GunicornSupervisor
Posted ikct2017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GunicornSupervisor相关的知识,希望对你有一定的参考价值。
简介
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
以上是关于GunicornSupervisor的主要内容,如果未能解决你的问题,请参考以下文章