Flask 第十四课 -- 部署

目录

一. 前言

二. 选择部署方式

三. 使用 Gunicorn 部署 Flask 应用

3.1. 安装 Gunicorn

3.2. 运行 Flask 应用

3.3. 配置 Nginx 作为反向代理

3.4. 启用 Nginx 配置

四. 使用 uWSGI 部署 Flask 应用

4.1. 安装 uWSGI

4.2. 创建 uWSGI 配置文件

4.3. 运行 uWSGI

4.4. 配置 Nginx 作为反向代理

五. 使用 Waitress 部署 Flask 应用

5.1. 安装 Waitress

5.2. 运行 Flask 应用

5.3. 配置 Nginx 作为反向代理

六. 在 Heroku 上部署 Flask 应用

6.1. 安装 Heroku CLI

6.2. 创建 Procfile

6.3. 部署到 Heroku

6.4. 访问应用

七. 在 Docker 中部署 Flask 应用

7.1 创建 Dockerfile

7.2. 创建 requirements.txt

7.3. 构建和运行 Docker 镜像


一. 前言

Flask 部署是将你的 Flask 应用程序发布到生产环境中的过程,使其可以被用户访问。

部署 Flask 应用涉及选择合适的服务器和环境配置。

以下是常见的 Flask 部署方法和步骤,包括使用 WSGI 服务器和 Web 服务器,以及如何在不同平台上部署 Flask 应用。

选择部署方式

  • 使用 Gunicorn、uWSGI 或 Waitress 作为 WSGI 服务器。
  • 使用 Nginx 或 Apache 作为反向代理服务器。
  • 可以选择在 Heroku 或 Docker 上部署。

部署步骤

  • 安装并配置 WSGI 服务器。
  • 配置 Web 服务器(如 Nginx)。
  • 可选:在 Heroku 或 Docker 上部署。

监控和维护

  • 监控应用的性能和日志。
  • 定期更新依赖和应用代码。

二. 选择部署方式

Flask 应用通常需要一个 WSGI 服务器来处理 Python 应用程序和 HTTP 请求,通常与一个 Web 服务器(如 Nginx 或 Apache)配合使用。常见的 WSGI 服务器有:

  • Gunicorn:一个流行的 WSGI 服务器,适用于 UNIX 系统。
  • uWSGI:支持多种协议的高性能 WSGI 服务器,适用于 UNIX 和 Windows 系统。
  • Waitress:一个简单且高效的 WSGI 服务器,适用于 Windows 系统。

三. 使用 Gunicorn 部署 Flask 应用

3.1. 安装 Gunicorn

pip install gunicorn

3.2. 运行 Flask 应用

假设你的 Flask 应用在 app.py 文件中,且应用实例名为 app,可以使用以下命令启动 Gunicorn 服务器:

gunicorn -w 4 -b 0.0.0.0:8000 app:app
  • -w 4:启动 4 个工作进程。
  • -b 0.0.0.0:8000:绑定到所有网络接口上的 8000 端口。
  • app:app:指定 Flask 应用实例的位置,格式为 模块名:实例名

3.3. 配置 Nginx 作为反向代理

Nginx 通常用作反向代理,将请求转发到 Gunicorn。

以下是一个 Nginx 配置示例,/etc/nginx/sites-available/yourapp 文件内容:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3.4. 启用 Nginx 配置

sudo ln -s /etc/nginx/sites-available/yourapp /etc/nginx/sites-enabled
sudo systemctl restart nginx

四. 使用 uWSGI 部署 Flask 应用

4.1. 安装 uWSGI

pip install uwsgi

4.2. 创建 uWSGI 配置文件

uwsgi.ini 文件内容:

[uwsgi]
module = app:app
master = true
processes = 4
socket = 127.0.0.1:8000
chmod-socket = 660
vacuum = true
die-on-term = true

4.3. 运行 uWSGI

uwsgi --ini uwsgi.ini

4.4. 配置 Nginx 作为反向代理

Nginx 配置与 Gunicorn 部署时类似,只需将 proxy_pass 地址更新为 http://127.0.0.1:8000。

五. 使用 Waitress 部署 Flask 应用

5.1. 安装 Waitress

pip install waitress

5.2. 运行 Flask 应用

from waitress import serve
from app import app

serve(app, host='0.0.0.0', port=8080)

5.3. 配置 Nginx 作为反向代理

Nginx 配置与 Gunicorn 部署时类似,只需将 proxy_pass 地址更新为 http://127.0.0.1:8080。

六. 在 Heroku 上部署 Flask 应用

6.1. 安装 Heroku CLI

下载并安装 Heroku CLI

6.2. 创建 Procfile

在项目根目录下创建一个 Procfile 文件,指定应用的启动命令。

Procfile 文件内容:

web: gunicorn app:app

6.3. 部署到 Heroku

heroku create
git add .
git commit -m "Initial commit"
git push heroku main

6.4. 访问应用

Heroku 会提供一个 URL,你可以通过该 URL 访问你的应用。

七. 在 Docker 中部署 Flask 应用

7.1 创建 Dockerfile

Dockerfile 文件内容:

FROM python:3.8-slim

WORKDIR /app

COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt

COPY . .

CMD ["gunicorn", "-b", "0.0.0.0:8000", "app:app"]

7.2. 创建 requirements.txt

列出应用的依赖包,requirements.txt 文件内容:

gunicorn

7.3. 构建和运行 Docker 镜像

docker build -t my-flask-app .
docker run -p 8000:8000 my-flask-app
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蜡笔小流

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值