返回

极简教程:Linux (Debian/Ubuntu) 上搭建 Flask + Gunicorn + Nginx

后端

在 Linux (Debian/Ubuntu) 上搭建 Flask + Gunicorn + Nginx 的详尽指南

**子
Flask 是一款轻量级 Python Web 框架,以其简洁性、灵活性而著称。Gunicorn 是一个高性能 Python WSGI HTTP 服务器,用于在生产环境中运行 Python Web 应用。Nginx 是一个高性能 HTTP 服务器,擅长反向代理和负载均衡。

**子
首先,安装 Flask,参考文章:在 Linux (Ubuntu/Debian) 上快速开始你的第一个 Flask 应用。接下来,使用以下命令安装 Gunicorn:

sudo pip install gunicorn

最后,安装 Nginx:

sudo apt-get install nginx

**子
创建一个名为 gunicorn.conf 的文件,添加以下内容:

[uwsgi]
listen = 127.0.0.1:8000
workers = 3

创建另一个名为 flask.conf 的文件,添加:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }
}

**子
使用以下命令启动 Gunicorn:

gunicorn --config gunicorn.conf app:app

然后,重新加载 Nginx 配置:

sudo systemctl reload nginx

要启用 SSL,请使用 Let's Encrypt 获取免费 SSL 证书。

**子
考虑使用 Docker 部署到生产环境。Docker 是一个轻量级的虚拟化技术,可让您在隔离的环境中运行应用。

**子
1. 我应该使用多少个 Gunicorn 工作进程?

这取决于您的应用和服务器负载。通常,从 2-4 个进程开始,根据需要进行调整。

2. 如何启用 Gunicorn 调试模式?

gunicorn.conf 中添加 --reload--log-level=debug

3. 如何配置 Nginx 缓存静态文件?

flask.conf 中添加 location ~* \.(js|css|png|jpg|jpeg|gif)$ { expires 365d; }

4. 如何使用 Docker 部署到生产环境?

创建一个 Dockerfile,并使用 docker-compose 命令部署您的应用。

5. 如何启用 Nginx 反向代理?

flask.conf 中使用 proxy_pass 指令将请求转发到您的应用服务器。

结论

通过遵循本指南,您已成功在 Linux (Debian/Ubuntu) 系统上搭建了 Flask + Gunicorn + Nginx 环境。借助这些强大工具,您可以构建可靠、可扩展且安全的 Python Web 应用。