发现这次又差不多隔了半个月才来写文章,生活当中总是会有一些事情需要我们去关心,去解决。保持一颗真诚的心才是解决问题的关键所在。
什么是Gunicorn呢,借用官网的一个说明。
Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。
其实生产环境我们一般有两个管理工具来进行多进程管理,一个是Gunicorn,一个是uWSGI。我比较喜欢简单优雅的工具,所以uWSGI直接被我pass,配置麻烦多了(个人认为)。
Gunicorn的安装
pip install gunicorn
Gunicorn的命令
这里就简单的说明下gunicorn的命令。
命令分为两大块 [OPTIONS]、[APP_MODULE]。分别表示命令参数与app的参数。
1.OPTIONS
-w 4 表示启动四个进程
-b 127.0.0.1:5000 表示绑定的ip地址为127.0.0.1 端口号为5000
--reload 表示当文件有发生变动的时候进行重启进程(生产环境建议不要这样子配置,默认false)。
更多请输入 gunicorn --help查看。
2.APP_MODULE
这个看名字就知道了,我们app所在的文件与模块。
Flask下的配置
1.启动程序的配置
if __name__ == '__main__':
from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
app.run(debug=False)
意思是启用wsgi来托管程序
2.进行程序的配置(这里使用supervisor来管理Gunicorn)
首先,创建配置文件
vi /etc/supervisor/conf.d/***.conf
然后,填入我们的配置
[program:****] # 程序的名称
directory = ***** # 你的项目文件目录
command=gunicorn -w 4 -b 0.0.0.0:7000 app:app # 运行的命令 app.py中的app模块(启动4个进程并且ip端口为0.0.0.0:7000)
user=root # 运行的用户
最后,输入命令
supervisorctl update
这个命令的意思是更新下supervisor的配置,而且还会自动启动我们改变过的程序,甚至新增的也会启动。
Django下的配置
Django下的配置方法很多种,我这里介绍一种最简单的。
1.创建配置文件
vi /etc/supervisor/conf.d/***.conf
2.填写配置文件
[program:***] # 程序的名称
directory = *** # 你的项目文件目录
command=gunicorn -w 4 -b 0.0.0.0:7070 ***.wsgi:application # 运行的命令 ***表示django项目名称(每个django项目,会在根目录下创建一个跟项目名称一样名字的文件夹)
user=root # 运行的用户
3.启动程序
supervisorctl update
一些说明
这里面没有说到nginx的反向代理怎么设置,因为前面的文章说过了,所以这里不再说明,不懂的小伙伴可以看下之前的文章。
The End
最后,还是那句话,欢迎小伙伴们找我讨论交流。