三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Linux 部署 Flask 服务(完整极简教程)

Linux 部署 Flask 服务(完整极简教程)

一、整体流程(先看一眼心里有数)

  1. 安装 Python 环境
  2. 编写 Flask 项目
  3. 安装 Gunicorn(WSGI 服务器,生产必须用)
  4. 配置 Nginx(反向代理,对外访问)
  5. 设置开机自启(systemd)
  6. 开放防火墙端口
 

二、环境准备

1. 安装依赖

# Ubuntu/Debian
sudo apt update
sudo apt install python3-pip python3-dev nginx# CentOS/RHEL
sudo yum install epel-release
sudo yum install python3-pip python3-devel nginx

2. 创建项目目录 

mkdir -p /var/www/flaskapp
cd /var/www/flaskap

三、编写 Flask 应用

1. 创建虚拟环境(推荐) 

python3 -m venv venv
source venv/bin/activate  # 进入虚拟环境 

 

2. 安装依赖 

pip install flask gunicorn
 

3. 编写 app.py

from flask import Flaskapp = Flask(__name__)@app.route('/')
def hello():return "Linux + Flask 部署成功!"if __name__ == '__main__':app.run()

 

四、用 Gunicorn 运行(生产级)

不要用 flask run 部署外网服务!正确方式:
gunicorn -w 4 -b 127.0.0.1:8000 app:app

 

参数说明:
  • -w 4:开启 4 个工作进程(根据 CPU 核数调整)
  • -b 127.0.0.1:8000:绑定本地 8000 端口
  • app:app:文件 app.py 里的 app 对象
测试是否能访问:
curl 127.0.0.1:8000

 五、配置 Nginx(对外访问)

1. 创建 Nginx 配置

sudo vi /etc/nginx/sites-available/flaskapp

 

写入内容:
server {listen 80;server_name 你的服务器IP或域名;location / {proxy_pass http://127.0.0.1:8000;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;}
}

 2. 启用配置

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

六、配置开机自启(systemd)

 1. 创建服务文件 

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

 

 写入: 

[Unit]
Description=Gunicorn daemon for Flask
After=network.target[Service]
User=root
Group=www-data
WorkingDirectory=/var/www/flaskapp
ExecStart=/var/www/flaskapp/venv/bin/gunicorn -w 4 -b 127.0.0.1:8000 app:app[Install]
WantedBy=multi-user.target

 

 2. 启动并设置开机自启

sudo systemctl daemon-reload
sudo systemctl start flaskapp
sudo systemctl enable flaskapp

 

  查看状态:

sudo systemctl status flaskapp

 

 

 七、防火墙放行端口

# Ubuntu
sudo ufw allow 80# CentOS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload

 

 八、现在你可以直接访问

 打开浏览器输入:

http://你的服务器IP

 

 

九、常用命令

# 重启 Flask 服务
sudo systemctl restart flaskapp# 重启 Nginx
sudo systemctl restart nginx# 查看日志
sudo journalctl -u flaskapp

 

总结

  1. Flask 本身不能直接部署,必须用 Gunicorn/uWSGI
  2. Nginx 负责对外提供 80 端口访问
  3. systemd 保证服务崩溃自动重启、开机自启
  4. 整套方案是企业生产标准部署方式

mkdir -p /var/www/flaskapp cd /var/www/flaskapp

← 返回列表