- 我选择debian系统
系统为:
bash
(flask-env) admin@server:~/flask-project$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
- 系统自带的是python3.11。 所以只需要创建虚拟环境用下面的命令。
bash
cd ~
mkdir flask-project
cd flask-project
sudo apt update
sudo apt install python3-venv -y
python3 -m venv flask-env
source flask-env/bin/activate
pip install Flask --break-system-packages
注意pip install Flask 最后命令可能不行。 运行上面命令后,文件夹进入了flask-project
bash
admin@server:~/flask-project$ cd ~/flask-project
(flask-env) admin@server: source flask-env/bin/activate
(flask-env) admin@server/flask-project$ deactivate
admin@server:~/flask-project$
- 在flask-project中建立app.py运行
bash
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello from Flask on Aliyun!"
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=False)
bash
python app.py
后在公网上运行就可以了
bash
http://<你的阿里云公网IP>:5000

- 可以通过gunicorn来部署
如果server_flask.py文件中有app=Flask(name)
bash
cd ~/flask-project
gunicorn -w 4 -b 0.0.0.0:5000 server_Flask:app
(flask-env) admin@server:~/flask-project$ gunicorn -w 4 -b 0.0.0.0:5000 app:app
[2025-08-21 13:00:36 +0800] [7247] [INFO] Starting gunicorn 23.0.0
[2025-08-21 13:00:36 +0800] [7247] [INFO] Listening at: http://0.0.0.0:5000 (7247)
[2025-08-21 13:00:36 +0800] [7247] [INFO] Using worker: sync
[2025-08-21 13:00:36 +0800] [7248] [INFO] Booting worker with pid: 7248
[2025-08-21 13:00:36 +0800] [7250] [INFO] Booting worker with pid: 7250
[2025-08-21 13:00:36 +0800] [7252] [INFO] Booting worker with pid: 7252
[2025-08-21 13:00:36 +0800] [7253] [INFO] Booting worker with pid: 7253
- 可以通过nginx来部署
bash
sudo apt update
sudo apt install nginx -y
创建配置文件:
bash
sudo nano /etc/nginx/sites-available/flask-project
内容如下(替换 your_domain_or_ip):
bash
server {
listen 80;
#server_name your_domain_or_ip;
#server_name www.mth.plus mth.plus;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
启用配置:
bash
sudo ln -s /etc/nginx/sites-available/flask-project /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
阿里云安全组开放端口
bash
端口:80
协议:TCP
授权对象:0.0.0.0/0

创建启动脚本:
bash
nano ~/flask-project/start.sh
内容如下:
bash
#!/bin/bash
source /home/admin/flask-project/flask-env/bin/activate
exec gunicorn -w 4 -b 0.0.0.0:5000 server_Flask:app
赋予执行权限:
bash
chmod +x ~/flask-project/start.sh
创建 systemd 服务文件:
bash
sudo nano /etc/systemd/system/flask-project.service
内容如下:
bash
[Unit]
Description=Flask Project via Gunicorn
After=network.target
[Service]
User=admin
WorkingDirectory=/home/admin/flask-project
ExecStart=/home/admin/flask-project/start.sh
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动服务:
bash
sudo systemctl daemon-reload
sudo systemctl enable flask-project
sudo systemctl start flask-project
bash
sudo systemctl start flask-project
查看状态:
bash
sudo systemctl status flask-project

PS:
查看系统进程
bash
netstat -ntlp
sudo kill -9 xxxx
sudo apt-get install python3-gunicorn
sudo apt-get install python3-numpy