全书目录

第二十九篇:Flask 完全指南 —— 轻骑兵微服务街区宇宙

第十六章:部署和运行 —— 训练场不是战场

1 分钟 315 字 第 533 / 962 个阅读单元

Flask 官方文档反复强调一件事:

不要把开发服务器带去生产环境。

开发环境你可以这样跑:

bash
flask --app riderhub run --debug

生产环境应该换真正的 WSGI 服务器。

官方部署文档里,Waitress 是一个很适合拿来演示的例子,尤其是跨平台简单:

bash
pip install waitress
waitress-serve --host 127.0.0.1 --call riderhub:create_app

这条命令背后的意思是:

text
Waitress
   │
   └── 导入 riderhub:create_app
       │
       └── 调用 create_app()
           │
           └── 拿到 Flask app

如果前面还有 Nginx / Apache / 负载均衡器,你还要考虑:

  • 反向代理头
  • HTTPS 终止
  • 原始客户端 IP
  • ProxyFix 等代理修正中间件
  • 静态文件分发策略

会话 cookie 也建议显式收紧:

py
app.config.update(
    SESSION_COOKIE_SECURE=True,
    SESSION_COOKIE_HTTPONLY=True,
    SESSION_COOKIE_SAMESITE="Lax",
)

还有两条非常硬的纪律:

  • SECRET_KEY 生产环境必须随机且保密
  • 不要在生产环境开启内置 debugger

开发时浏览器里的交互式调试器很好用; 生产时它是重大安全风险。