windows 生产服务器下部署 python Flask 【转载】
转载
场景描述
很多 python 工程师,都会用 flask 来开发、部署 Web 应用。但也有很多工程师就直接使用 app.run()
在生产环境上启动服务。
那可能会发现 Flask 用 app.run() 这种方式启动,有异常特别容易退出,而且性能很弱。
生产环境下,python 常见的 web 部署搭配是 nginx+gunicorn
。
但是这种搭配只适合在 Linux 环境下。关于这种搭配的配置方法网上有很多。反而在 windows 环境下该使用什么搭配来部署,网上说的比不多。而我们的项目由于某种特殊的原因就必须搭建在 windows 环境下,所以使用的部署方案是:Flask + Tornado+nginx
。
解决方案示例
flask 服务文件 flask_app.py
1 | from flask import Flask |
安装 Tornado
1 | pip install tornado |
flask_app.py 目录下编写 Tornado 的 server.py 文件
1 | from tornado.httpserver import HTTPServer |
启动服务
当前目录下执行 python server.py
浏览器中访问 http://ip:8080 即可
1 | python server.py |
配置 nginx 反向代理
配置 nignx 反向代理,这样在浏览器中直接访问 www.test.com 即可
windows 下 nginx 的安装和使用还是很简单的,网上教程很多,这里就不多说了
1 | http { |