Flask 是一个轻量级的 Web 应用框架,非常适合快速开发和部署微服务。将 Flask 项目部署到云服务器上可以提供高可用性、可扩展性和灵活性。以下是一些基础概念和相关信息:
sudo apt update
sudo apt install python3-pip python3-dev build-essential libssl-dev libffi-dev python3-setuptools
sudo pip3 install flask gunicorn
app.py
)from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
创建一个 gunicorn.service
文件在 /etc/systemd/system/
目录下:
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=yourusername
Group=www-data
WorkingDirectory=/home/yourusername/myproject
Environment="PATH=/home/yourusername/myproject/venv/bin"
ExecStart=/home/yourusername/myproject/venv/bin/gunicorn --workers 3 --bind unix:/home/yourusername/myproject/myproject.sock -m 007 app:app
[Install]
WantedBy=multi-user.target
然后启动并启用 Gunicorn:
sudo systemctl start gunicorn
sudo systemctl enable gunicorn
创建一个 Nginx 配置文件 /etc/nginx/sites-available/myproject
:
server {
listen 80;
server_name your_domain_or_IP;
location / {
proxy_pass http://unix:/home/yourusername/myproject/myproject.sock;
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/myproject /etc/nginx/sites-enabled
sudo nginx -t
sudo systemctl restart nginx
pip freeze > requirements.txt
来管理依赖。通过以上步骤,你可以成功地将 Flask 项目部署到云服务器上。如果遇到具体问题,可以根据错误日志进行排查和解决。