部署实战

Flask 教程 · 第 8 章 · 7 次浏览

Flask 开发服务器(app.run)不能直接上生产:性能差、不安全。生产部署标准方案是 Gunicorn + Nginx 反向代理。

部署流程

  1. gunicorn 启动应用:gunicorn -w 4 -b 127.0.0.1:5000 app:app(4 个 worker)
  2. Nginx 反向代理 80 端口 → 5000,处理静态文件和 HTTPS
  3. 宝塔面板可以直接配置,或 Docker 容器化部署

配置要点

  • debug=False,配置 SECRET_KEY 环境变量
  • 静态文件由 Nginx 直接服务,别走 Flask
  • 数据库用 MySQL/PostgreSQL,不用 SQLite(并发差)

代码示例

# Gunicorn 启动
pip install gunicorn
gunicorn -w 4 -b 127.0.0.1:5000 app:app

# Nginx 反向代理配置
# server {
#     listen 80;
#     server_name example.com;
#     location / {
#         proxy_pass http://127.0.0.1:5000;
#         proxy_set_header Host $host;
#         proxy_set_header X-Real-IP $remote_addr;
#     }
#     location /static/ {
#         alias /path/to/app/static/;
#     }
# }
📚 Shell 命令速查
常用条目速查,完整版见对应教程章节。可复制代码到在线运行中测试。
写法 / 语法作用
ls / ls -la列出文件(-la 显示隐藏和详情)
cd 目录切换目录
pwd显示当前目录
mkdir -p 目录创建目录(-p 自动建父级)
touch 文件创建空文件
cp -r 源 目标复制(-r 递归复制目录)
mv 源 目标移动 / 重命名
rm -rf 目录删除(危险,慎用)
cat 文件查看文件内容
less 文件分页查看文件(q 退出)
grep "关键词" 文件按关键词搜索
find . -name "*.php"按名称查找文件
chmod 755 文件修改权限
ps aux查看进程
kill 进程号结束进程
top实时资源监控
df -h / free -m磁盘 / 内存占用
tar -czf a.tar.gz 目录打包压缩
tar -xzf a.tar.gz解压
curl 网址请求网址(测试接口)
wget 网址下载文件
ssh 用户@主机远程登录
scp 文件 用户@主机:/路径远程传文件
sudo 命令以管理员执行
crontab -e编辑定时任务