欢迎您 本站地址:  

Flask 部署

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

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

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

选择部署方式

部署步骤

监控和维护


1. 选择部署方式

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


2. 使用 Gunicorn 部署 Flask 应用

2.1 安装 Gunicorn

pip install gunicorn

2.2 运行 Flask 应用

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

gunicorn -w 4 -b 0.0.0.0:8000 app:app

2.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;
    }
}

2.4 启用 Nginx 配置

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

3. 使用 uWSGI 部署 Flask 应用

3.1 安装 uWSGI

pip install uwsgi

3.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

3.3 运行 uWSGI

uwsgi --ini uwsgi.ini

3.4 配置 Nginx 作为反向代理

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


4. 使用 Waitress 部署 Flask 应用

4.1 安装 Waitress

pip install waitress

4.2 运行 Flask 应用

实例

from waitress import serve
from app import app

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

4.3 配置 Nginx 作为反向代理

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


5. 在 Heroku 上部署 Flask 应用

5.1 安装 Heroku CLI

下载并安装 Heroku CLI

5.2 创建 Procfile

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

Procfile 文件内容:

web: gunicorn app:app

5.3 部署到 Heroku

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

5.4 访问应用

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


6. 在 Docker 中部署 Flask 应用

6.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"]

6.2 创建 requirements.txt

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

gunicorn

6.3 构建和运行 Docker 镜像

docker build -t my-flask-app .
docker run -p 8000:8000 my-flask-app
小库提示

扫描下方二维码,访问手机版。