@本文使用ChatGpt生成
在 Ubuntu 系统上部署 Flask 项目可以通过多种方式完成,但其中一个常见且有效的方法是使用 Gunicorn 作为 WSGI HTTP 服务器,结合 Nginx 作为反向代理服务器。以下是一步一步的部署指南:
更新系统软件包:
sudo apt update
sudo apt upgrade
安装 Python 和 pip:
sudo apt install python3 python3-pip
创建一个新的目录来存放你的 Flask 应用:
mkdir myflaskapp
cd myflaskapp
创建虚拟环境(推荐):
sudo apt install python3-venv
python3 -m venv venv
source venv/bin/activate
安装 Flask 和 Gunicorn:
pip install Flask gunicorn flask_cors requests
创建一个名为 app.py
的简单 Flask 应用:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == "__main__":
app.run()
gunicorn --workers 3 --bind 0.0.0.0:8000 app:app
安装 Nginx:
sudo apt install nginx
配置 Nginx 作为反向代理:
创建一个配置文件 /etc/nginx/sites-available/myflaskapp
:
server {
listen 80;
server_name example.com; # 替换为你的域名或公网 IP
location / {
proxy_pass http://localhost:8000;
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;
}
}
激活网站:
sudo ln -s /etc/nginx/sites-available/myflaskapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
确保你的防火墙允许 HTTP(端口 80)和 HTTPS(端口 443)流量:
sudo ufw allow 'Nginx Full'
通过以上步骤,你的 Flask 应用应该已经可以通过 Internet 在 Ubuntu 服务器上访问了。这只是一个基本的部署指南,根据你的具体需求,可能还需要进一步的优化和安全配置。