Flask 官方文档反复强调一件事:
不要把开发服务器带去生产环境。
开发环境你可以这样跑:
flask --app riderhub run --debug生产环境应该换真正的 WSGI 服务器。
官方部署文档里,Waitress 是一个很适合拿来演示的例子,尤其是跨平台简单:
pip install waitress
waitress-serve --host 127.0.0.1 --call riderhub:create_app这条命令背后的意思是:
Waitress
│
└── 导入 riderhub:create_app
│
└── 调用 create_app()
│
└── 拿到 Flask app如果前面还有 Nginx / Apache / 负载均衡器,你还要考虑:
- 反向代理头
- HTTPS 终止
- 原始客户端 IP
ProxyFix等代理修正中间件- 静态文件分发策略
会话 cookie 也建议显式收紧:
app.config.update(
SESSION_COOKIE_SECURE=True,
SESSION_COOKIE_HTTPONLY=True,
SESSION_COOKIE_SAMESITE="Lax",
)还有两条非常硬的纪律:
SECRET_KEY生产环境必须随机且保密- 不要在生产环境开启内置 debugger
开发时浏览器里的交互式调试器很好用; 生产时它是重大安全风险。