1.在linux下部署Flask性能比较低这个时候可以用一些热门的框架帮助Flask提高并发性能
2.经过调研和尝试使用
gunicorn可以结合gevent来进行部署,因此在高并发场景下也可适用,于是决定采用gunicorn进行部署。
首先pip安装gunicorn。
pip install gunicorn --user
在运行的python脚本目录 创建加载并且配置文件
详情:
# config.py
import os
import gevent.monkey
gevent.monkey.patch_all()
import multiprocessing
# debug = True
loglevel = ‘debug‘
bind = "0.0.0.0:5000"
# 在当前目录下创建一个log文件夹用来存放日志和运行的pid
pidfile = "log/gunicorn.pid"
accesslog = "log/access.log"
errorlog = "log/debug.log"
# 进程守护True为开启后台模式,这里需要注意刚开始挂起最好使用False 看看脚本有没有反馈
daemon = True
# 启动的进程数
workers = 4
worker_class = ‘gevent‘
x_forwarded_for_header = ‘X-FORWARDED-FOR‘
调用命令:
[root@VM-0-15-centos ~]# gunicorn -c gunicorn.py main:app
# 这里需要注意第一次启动前先把配置文件中的
进程守护默认为False前台运行调试没问题 再挂载到后台
# 启动完成 进程是否启动成功可以用ps -aux看下
[root@VM-0-15-centos ~]# ps -aux|grep 要查询的脚本名
生产环境不需要这个配置项,调试的时候可以使用。
开启debug项后,在启动gunicorn的时候可以看到所有可配置项的配置,如下所示。
config.py中只需要配置需要修改的项的,大部分采用默认配置即可。默认配置的具
体配置内容可以通过gunicorn -h来查询。
daemon = True意味着开启后台运行,默认为False
需要注意的事项,在falsk代码里不能再加
# from gevent.pywsgi import WSGIServer
# monkey.patch_all()
都需要把的gevent,monkey模块并发注释掉,使用gunicorn里的monkey.patch_all()和gevent模块
原文:https://www.cnblogs.com/qiuji/p/15159498.html