本篇文章为大家展示了Flask使用Gunicorn部署服务是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
在开发时,我们使用flask run命令启动开发服务器运行应用,该服务器是由 Werkzeug 提供的,但是该服务器性能比较低,只能供开发测试用来调试使用,生产环境不建议直接使用,需要一个高性能的服务器来部署 Flask 服务,Gunicorn 是推荐比较多的高性能服务器,接下来就具体介绍一下。
1、Gunicorn
Gunicorn
,绿色独角兽(Green Unicorn
),是一个 Python WSGI HTTP
服务器,只支持在 Unix/Linux
系统下运行,来源于Ruby
的 Unicorn
项目。它采用 pre-fork
的 worker
模型,在启动时,会在主进程中预先 fork 出指定数量的 worker
进程来处理请求,极大提升了服务器请求负载能力,又可以兼容于多种 Python Web
框架,实现简单,占用系统资源少,速度也相当快,因此受到广大 Python
开发者的喜爱。
gunicorn
的安装也非常简单,使用pip install gunicorn命令即可
2、Gunicorn 的使用
Gunicorn 可以使用命令来运行,命令格式如下:
gunicorn [OPTIONS] 模块名:应用实例名
比如一个简单的 Flask 应用的 app.py 文件:
from flask import Flaskapp = Flask(__name__)@app.route("/")def index(): return "hello world"if __name__ == '__main__': app.run()
可以使用以下命令启动应用:
gunicorn -w 4 -b 127.0.0.1:8888 app:app
-w
:是开启的进程数量-b
:指定监听地址和端口app:app
:第一个app
指Python
模块文件的名称,第二个指的是Flask
应用实例的名称
上述命令代表的是使用 4个 worker
进程来运行 Flask
应用,绑定到 本地的 8888 端口。
gunicorn
其实还有非常多的配置项,可以通过gunicorn -h查
看。
实际上,由于运行时需要指定的配置项很多,通过命令的方式运行Gunicorn
就会非常麻烦,通常会把配置项写入 gunicorn.config.py
文件来进行指定。
如:
# 日志配置loglevel = "debug"accesslog = './log/access.log'errorlog = './log/error.log'workers = 4# 设置工作模式为协程worker_class = "gevent"bind = "0.0.0.0:8080"
以上配置了日志、工作模式等配置项,把工作模式设置成了 gevent
, 是基于Python
第三方库 gevent
的异步工作模式,除此之外,还有sync
、eventlet
、tornado
、gthread
,默认是sync
。
配置完成后,使用gunicorn app:app -c ./gunicorn.config.py
命令即可使用 gunicorn
运行 Flask 服务。
上述内容就是Flask使用Gunicorn部署服务是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网行业资讯频道。