Ubuntu 部署 Flask 应用程序
本帖最后由 Shaw0xyz 于 2024-6-10 18:24 编辑1. 介绍
Flask是一个轻量级的Web应用框架,适用于Python编程语言。其简单易用的特性使其成为开发和部署Web应用程序的理想选择。本文将详细介绍如何在Ubuntu系统上部署一个Flask应用程序。
1.1 环境准备
在开始部署Flask应用程序之前,需要确保系统已经安装了一些必要的软件和工具。
1.1.1 更新系统和安装必要软件
首先,更新系统包列表并安装必要的软件,包括Python、pip以及virtualenv。
sudo apt update
sudo apt upgrade
sudo apt install python3 python3-pip python3-venv
1.1.2 创建项目目录
接下来,创建一个新的目录用于存放Flask应用程序,并进入该目录。
mkdir myflaskapp
cd myflaskapp
1.2 创建和配置Flask应用
在项目目录中,使用virtualenv创建一个虚拟环境,并激活它。然后,安装Flask。
python3 -m venv venv
source venv/bin/activate
pip install Flask
接下来,创建一个简单的Flask应用程序。在项目目录中创建一个名为`app.py`的文件,并添加以下内容:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
1.3 测试Flask应用
在终端中运行以下命令,启动Flask开发服务器,测试应用是否正常运行。
export FLASK_APP=app.py
flask run
打开浏览器,访问http://127.0.0.1:5000/,如果看到"Hello, World!",说明Flask应用程序已经成功运行。
1.4 部署Flask应用
为了在生产环境中部署Flask应用程序,需要使用一个生产级的Web服务器。Gunicorn是一款流行的Python WSGI HTTP服务器,适合部署Flask应用。
1.4.1 安装Gunicorn
在虚拟环境中安装Gunicorn。
pip install gunicorn
1.4.2 使用Gunicorn启动Flask应用
使用以下命令启动Flask应用。
gunicorn --bind 0.0.0.0:8000 app:app
此时,Flask应用已经通过Gunicorn运行在http://0.0.0.0:8000/。
1.5 配置Nginx
为了进一步提升性能和安全性,可以在Gunicorn前面设置Nginx作为反向代理服务器。
1.5.1 安装Nginx
使用以下命令安装Nginx。
sudo apt install nginx
1.5.2 配置Nginx
在`/etc/nginx/sites-available/`目录下创建一个新的配置文件,例如`myflaskapp`,并添加以下内容:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass <a href="http://127.0.0.1:8000;" target="_blank">http://127.0.0.1:8000;</a>
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;
}
}
创建一个符号链接到`sites-enabled`目录,并测试Nginx配置是否正确。
sudo ln -s /etc/nginx/sites-available/myflaskapp /etc/nginx/sites-enabled
sudo nginx -t
如果配置正确,重启Nginx。
sudo systemctl restart nginx
1.6 配置系统服务
为了确保Flask应用在系统重启后自动启动,可以创建一个systemd服务。
1.6.1 创建systemd服务文件
在`/etc/systemd/system/`目录下创建一个服务文件,例如`myflaskapp.service`,并添加以下内容:
Description=Gunicorn instance to serve myflaskapp
After=network.target
User=your_user
Group=www-data
WorkingDirectory=/path/to/myflaskapp
Environment="PATH=/path/to/myflaskapp/venv/bin"
ExecStart=/path/to/myflaskapp/venv/bin/gunicorn --workers 3 --bind unix:myflaskapp.sock -m 007 wsgi:app
WantedBy=multi-user.target
1.6.2 启动并启用服务
使用以下命令启动并启用服务,使其在系统启动时自动运行。
sudo systemctl start myflaskapp
sudo systemctl enable myflaskapp
1.7 结论
本文详细介绍了在Ubuntu系统上部署Flask应用程序的步骤,包括环境准备、创建和配置Flask应用、使用Gunicorn和Nginx、以及配置systemd服务。通过这些步骤,可以确保Flask应用程序在生产环境中高效、安全地运行。
/ 荔枝学姐de课后专栏 /
Hi!这里是荔枝学姐~
欢迎来到我的课后专栏
自然语言学渣 NLP摆烂姐
热衷于技术写作 IT边角料
AIGC & Coding & Linux ...
~互撩~ TG: @Shaw_0xyz
页:
[1]