傻傻的开发萌新最近研究了一点flask,发现某个网站进行某些操作的时候,多用户会报错,天真的认为是单进程的原因(天哪),然后就研究了下gunicorn,发现它可以很方便的实现多进程,而且对服务器性能提高有很大帮助,这里只简单记录一下如何实现多进程。
只需要flask+gunicorn,没有使用nginx做反代。
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
会看到启动了十个进程。