0%

Flask+Gunicorn简单实现多进程

傻傻的开发萌新最近研究了一点flask,发现某个网站进行某些操作的时候,多用户会报错,天真的认为是单进程的原因(天哪),然后就研究了下gunicorn,发现它可以很方便的实现多进程,而且对服务器性能提高有很大帮助,这里只简单记录一下如何实现多进程。

只需要flask+gunicorn,没有使用nginx做反代。

使用http://ServerIP:5555/访问网站。

flask项目名叫app,它通过control.py启动。

0x00 安装gunicorn

pip install gunicorn

0x01 配置文件  
#cat gun.conf

bind = '0.0.0.0:5555'
workers = 10 # 十进程
proc_name = 'app'
pidfile = '/tmp/app.pid'

0x02 修改flask脚本

在if name ==  ‘main‘:这一行之前加上

import werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)

程序的最后几行看起来是这样的:

from werkzeug.contrib.fixers import ProxyFix
app.wsgi_app = ProxyFix(app.wsgi_app)
if __name__ ==  '__main__':
app.run(host='0.0.0.0', port=5555)

0x03 启动网站

gunicorn -c gun.conf control:app

会看到启动了十个进程。