极简教程:Linux (Debian/Ubuntu) 上搭建 Flask + Gunicorn + Nginx
2023-01-27 05:37:00
在 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 应用。