Flask  使用Gunicorn部署服务介绍

前言:

在开发时,我们使用flask run命令启动开发服务器运行应用,该服务器是由 Werkzeug 提供的,但是该服务器性能比较低,只能供开发测试用来调试使用,生产环境不建议直接使用,需要一个高性能的服务器来部署 Flask 服务,Gunicorn 是推荐比较多的高性能服务器,接下来就具体介绍一下。

1、Gunicorn

Gunicorn,绿色独角兽(Green Unicorn),是一个 Python WSGI HTTP 服务器,只支持在 Unix/Linux 系统下运行,来源于Ruby Unicorn 项目。它采用 pre-forkworker 模型,在启动时,会在主进程中预先 fork 出指定数量的 worker 进程来处理请求,极大提升了服务器请求负载能力,又可以兼容于多种 Python Web 框架,实现简单,占用系统资源少,速度也相当快,因此受到广大 Python 开发者的喜爱。

gunicorn 的安装也非常简单,使用pip install gunicorn命令即可

2、Gunicorn 的使用

Gunicorn 可以使用命令来运行,命令格式如下:

gunicorn [OPTIONS] 模块名:应用实例名

比如一个简单的 Flask 应用的 app.py 文件:

from flask import Flask

app = 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 的异步工作模式,除此之外,还有synceventlettornadogthread,默认是sync

配置完成后,使用gunicorn app:app -c ./gunicorn.config.py命令即可使用 gunicorn 运行 Flask 服务。

到此这篇关于 Flask  使用Gunicorn部署服务介绍的文章就介绍到这了,更多相关 Flask  使用Gunicorn部署服务内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

关于 gunicorn 更详细的使用方法,可以查看gunicorn 官方文档进一步了解。

(0)

相关推荐

  • 在CentOS上配置Nginx+Gunicorn+Python+Flask环境的教程

    Python基础环境搭建 CENTOS 6.X 系列默认安装的 Python 2.6 ,目前开发中主要是使用 Python 2.7 ,这两个版本之间还是有不少差异的,程序在 Python 2.6 下经常会出问题. 比如: re.sub 函数 ,2.7 支持 flags 参数,而 2.6 却不支持. 所以,打算安装 Python 2.7 来运行 Flask 应用程序,但 2.6 不能删除,因为系统对它有依赖. 1.安装 sqlite-devel 因为 Flask 应用程序可能使用能 Sqlite

  • Flask  使用Gunicorn部署服务介绍

    前言: 在开发时,我们使用flask run命令启动开发服务器运行应用,该服务器是由 Werkzeug 提供的,但是该服务器性能比较低,只能供开发测试用来调试使用,生产环境不建议直接使用,需要一个高性能的服务器来部署 Flask 服务,Gunicorn 是推荐比较多的高性能服务器,接下来就具体介绍一下. 1.Gunicorn Gunicorn,绿色独角兽(Green Unicorn),是一个 Python WSGI HTTP 服务器,只支持在 Unix/Linux 系统下运行,来源于Ruby 的

  • 如何使用flask将模型部署为服务

    1. 加载保存好的模型 为了方便起见,这里我们就使用简单的分词模型,相关代码如下:model.py import jieba class JiebaModel: def load_model(self): self.jieba_model = jieba.lcut def generate_result(self, text): return self.jieba_model(text, cut_all=False) 说明:在load_model方法中加载保存好的模型,无论是sklearn.te

  • 使用gunicorn部署django项目的问题

    1.开发环境运行项目 python mange.py runserver 0.0.0.0:8000 2.使用gunicorn在生产环境部署 Gunicorn"绿色独角兽"是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器 pip install gunicorn gunicorn -w 2 -b 0.0.0.0:8000 project_django.wsgi 常用参数: -c 指定一个配置文件(py文件) -b 与指定的socket进行绑定 -D 以守护进程形

  • 详细记一次Docker部署服务的爬坑历程

    第一次写文.请允许我自我介绍一下... 大家好我是茉莉.为什么叫茉莉呢?emmm ID茉莉转圈圈? 皮一下,嘻嘻嘻.笔者两年小菜鸡(差三天满两年).因为公司只有一个我和前端两个人.所以线上服务部署的任务自然而然就落到了我的肩膀上啦.第一次用docker正式在生产环境部署服务.从一个坑爬出来又掉入另一个坑.就记录一下这次上线遇到的bug.写的不对的地方麻烦各位指正噢.见谅! 好啦.废话不多说.action! 本项目采用的是spring cloud+spring boot+spring gatewa

  • windows server 2016部署服务的方法步骤(图文教程)

    绪论 有时候,如果安装系统数量比较多,而且数量较多,人工使用U盘或者光盘安装,效率较低,通过网络可以批量安装. 还可以做到无人安装. PXE PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFT

  • 密码学之apache部署https介绍

    目录 实验目的 实验环境 实验原理 实验步骤 一.生成独立的CA 二.生成服务器的私钥key和签名请求文件csr  三.安装apache的ssl模块 四.复制证书到对应路径 五.修改apache配置文件,让证书生效  六.重启apache服务 七.测试网站证书 实验总结 实验目的 掌握apache部署自定义证书的https服务器方法 实验环境 一台Centos 7.2 已经安装openssl组件,已安装apache httpd,用于搭建https服务器 一台windows 10客户端,已安装ch

  • Flask项目的部署的实现步骤

    目录 宝塔更新Python版本 更改默认的Python版本 项目部署 设置映射 宝塔更新Python版本 因为在宝塔中的Python版本为2.6.8,使用宝塔Python项目管理的话需要把Python升级到3.x,不然的话在部署的时候会提示有些模块下载失败.接下来开始操作: apt安装 sudo apt install python3 python3-dev 安装依赖 安装完Python3之后,默认会安装Python包管理器pip.安装Python3以后会变为pip3命令来下载依赖. pip3

  • 使用systemd部署服务的过程解析

    目录 1.前言 2.如何部署服务 2.1.后台进程方式启动 2.2.使用systemd方式启动 2.2.1.创建service文件 2.2.2.启动服务 3.如何自动启动 3.1.自动启动文件 3.1.1.rc.local 3.1.2.rc.d 3.2.systemd 1.前言 通常,我们在开发过程中,难免需要去部署我们的服务,但是,我们应该如何去做呢?如果主机重启了,服务怎么自己启动呢?可能你的心里已经有了几种不同的答案,接下来我们就一起看看吧. 2.如何部署服务 假设,我们现在有一个pyth

  • Nginx下SSL证书安装部署步骤介绍

    目录 问题描述: 安装步骤 1.准备工作 2.远程连接服务器 3.拷贝证书和私钥文件 4.编辑 Nginx 根目录下的 conf/nginx.conf 文件 5.在 Nginx 根目录下,通过执行以下命令验证配置文件问题 6.重启 Nginx,访问网站 问题描述: 小编遇到https协议过期了,于是重新申请,在Nginx服务器部署SSL证书 安装步骤 1.准备工作 在 SSL 证书管理控制台 中下载并解压缩 cloud.tencent.com 证书文件包到本地目录. 解压缩后,可获得相关类型的证

  • Python flask框架定时任务apscheduler应用介绍

    目录 基本使用 trigger启动方式 cron启动方式 使用装饰器定时启动任务 flask-apscheduler将apscheduler移植到了flask应用中,使得在flask中可以非常方便的使用定时任务了,除此之外,它还有如下几个特性 根据Flask配置加载调度器配置 根据Flask配置加载任务调度器 允许指定服务器运行任务 提供RESTful API管理任务,也就是远程管理任务 为RESTful API提供认证 下载安装 pip install flask-apscheduler 基本

随机推荐