最近刚好在我的Linux服务器上部署一个Web服务, 使用了python的Flask
框架, 因此本文主要介绍flask在linux环境上的部署。
Flask
是一个轻量级的Python Web框架,非常适合快速开发小型到中型的 Web 应用。然而,Flask 自带的服务器通常是用于开发目的,不适合直接用于生产环境。因此, 这里就需要Gunicorn
这样的 WSGI HTTP 服务器来提供更强大、更稳定的服务。
本文主要围绕使用Gunicorn
进行flask
项目在生产环境的部署,Gunicorn
有以下优势:
-
性能牛:Gunicorn 是一个预先分叉的、多工作进程的模型,能够更好地处理并发请求,显著提高应用的处理能力。
-
简易性和可扩展性:Gunicorn 配置简单,与 Flask 应用无缝集成。它还支持多种部署配置,可以轻松扩展以应对不同的负载需求。
-
稳定性和安全性:与 Flask 内置服务器相比,Gunicorn 提供了更高的稳定性和安全性,这对于生产环境来说至关重要。
1 使用
安装环境
pipinstallgunicorn
gunicorn
是在Linux系统上运行的, 不太适用Windows系统.
准备应用
首先, 我们先有了一个简单的Flask项目, 简单或者复杂的都可以, 假设文件名称是flask_app.py
内容如下:
fromflaskimportFlask
app=Flask(__name__)
@app.route('/')
defhello():
return"Hello,Orange!"
运行和部署
如果我们想简单的运行起来, 执行以下命令就行了:
gunicornflask_app:app
flask_app
是我们Flask
应用入口文件的名称,app
是Flask
实例名称. 该命令会在8000端口启动一个进程的flask应用.
然后, 因为实际业务的需要, 我们还需要调整一些参数.
设置工作进程
使用**(-w
或--workers
)**参数:这个选项用于指定工作进程的数量。一个好的起点是设置为 CPU 核心数的 2-4 倍。
gunicorn-w5flask_app:app
设置监听地址和端口
**(-b
或--bind
)**:指定 Gunicorn 监听的 IP 地址和端口。默认是127.0.0.1:8000
。
gunicorn-w4-b0.0.0.0:5000服务器托管网flask_app:app
超时时间
**(--timeout
)**:设置工作进程的超时时间,单位是秒。如果工作进程在这段时间内没有响应,它将被重启。
gunicorn--timeout120-w4flask_app:app
日志文件和级别
**(--access-logfile
和--log-level
)**:配置访问日志和日志级别。
gunicorn-w4--access-logfile---log-leveldebugflask_ap服务器托管网p:app
守护进程(后台运行)
添加--daemon
选项我们可以启用守护进程模式。
gunicorn--daemon-w4flask_app:app
环境变量
我们有时候还需要对应用设置一些环境变量, 因此这个可以通过--env
选项实现。
我们设置一个环境变量MY_ENV
为PRODUCT
的环境变量:
gunicorn--envMY_ENV=PRODUCTflask_app:app
配置文件
当然, 在一些复杂的情况下, 我们还可以使用配置文件来进行部署:
我们先创建一个 Python 文件,比如gunicorn_config.py
,然后在里面设置我们需要的Gunicorn
的配置选项。
#绑定的IP和端口
bind="0.0.0.0:8000"
#工作进程数
workers=4
#工作模式
worker_class='gevent'
#超时时间
timeout=120
#访问日志路径
accesslog='./logs/access.log'
#错误日志路径
errorlog='./logs/error.log'
#日志级别
loglevel='debug'
运行这个配置文件:
gunicorn-cgunicorn_config.pyflask_app:app
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 鸿蒙HarmonyOS实战-ArkUI组件(Video)
一、Video 视频组件是用于应用程序中嵌入视频的一种方法。它可以让用户在网站上观看视频并与其进行交互。通常,视频组件将一个视频文件嵌入应用程序中,并提供一组控件,这些控件允许用户播放、暂停、跳过、音量调整和全屏等。通过使用视频组件,开发者可以更容易地将视频嵌…