作者:书生 | 来源:互联网 | 2023-09-12 09:54
本文由编程笔记#小编为大家整理,主要介绍了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:]
command=/usr/local/bin/gunicorn wsgi --bind --workers <2 * cpucores + 1> --worker-class gevent
directory=
autostart=true
autorestart=true
stdout_logfile=
stderr_logfile=
# 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