专注云服务商活动
网站运营运维笔记

6个步骤实现ubuntu部署flask轻量级的 Python Web 框架

Flask​ 是一个轻量级的 Python Web 框架,以简洁、灵活著称。它采用“微框架”设计,核心功能精简,但可通过扩展(如 Flask-SQLAlchemy、Flask-Login)轻松增强功能。适合快速开发小型到中型 Web 应用,强调开发者自由度,适合 RESTful API 和简单网站开发。在这篇文章中,老左将会记录如何在 Ubuntu环境中部署 flask轻量框架。

第一、安装环境的准备

1、更新系统

sudo apt update && sudo apt upgrade -y

2、安装 Python 和 pip​

Ubuntu 通常预装 Python 3,但建议确保版本较新(如 Python 3.8+):

sudo apt install python3 python3-pip python3-venv -y

安装后检查版本:

python3 --version  # 推荐 Python 3.8+
pip3 --version

第二、创建 Flask 应用​

1、创建项目目录

mkdir myflaskapp && cd myflaskapp

2、创建虚拟环境

python3 -m venv venv
source venv/bin/activate  # 激活虚拟环境

3、安装Flask

pip install flask gunicorn

4、创建简单的应用

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello, Flask on Ubuntu!"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000)

访问 http://<服务器IP>:5000,应该能看到 Hello, Flask on Ubuntu!。

第三、使用 Gunicorn 运行 Flask

Gunicorn 比 Flask 内置服务器更适合生产环境。

1、使用 Gunicorn 启动 Flask

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

测试访问 http://<服务器IP>:8000,应该能看到相同的内容。

2、创建 Systemd 服务(可选,让 Gunicorn 开机自启)​​

创建 /etc/systemd/system/myflaskapp.service:

sudo nano /etc/systemd/system/myflaskapp.service

写入内容:

[Unit]
Description=Gunicorn instance to serve my Flask app
After=network.target

[Service]
User=ubuntu  # 替换为你的用户名
Group=www-data
WorkingDirectory=/home/ubuntu/myflaskapp  # 替换为你的项目路径
Environment="PATH=/home/ubuntu/myflaskapp/venv/bin"
ExecStart=/home/ubuntu/myflaskapp/venv/bin/gunicorn -w 4 -b 0.0.0.0:8000 app:app

[Install]
WantedBy=multi-user.target

启动并启用服务:

sudo systemctl start myflaskapp
sudo systemctl enable myflaskapp  # 开机自启

检查状态

sudo systemctl status myflaskapp

第四、配置 Nginx 反向代理​

Nginx 作为前端代理,处理静态文件和 HTTPS,并将请求转发给 Gunicorn。

1、安装 Nginx

sudo apt install nginx -y

2、配置Nginx

创建 /etc/nginx/sites-available/myflaskapp:

sudo nano /etc/nginx/sites-available/myflaskapp

写入测试内容

server {
    listen 80;
    server_name your_domain_or_ip;  # 替换为你的域名或IP

    location / {
        proxy_pass http://127.0.0.1:8000;  # 转发到 Gunicorn
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    # 可选:静态文件处理(如果 Flask 有 static 文件夹)
    location /static {
        alias /home/ubuntu/myflaskapp/static;  # 替换为你的静态文件路径
    }
}

启动:

sudo ln -s /etc/nginx/sites-available/myflaskapp /etc/nginx/sites-enabled
sudo nginx -t  # 测试配置是否正确
sudo systemctl restart nginx

第五、配置SSL证书

第六、防火墙配置

sudo ufw allow 'Nginx Full'
sudo ufw enable

 

投上你的一票
域名主机商优惠信息推送QQ群: 627775477 获取商家优惠推送,禁言。
赞(0)
未经允许不得转载:老左笔记 » 6个步骤实现ubuntu部署flask轻量级的 Python Web 框架