之前写了一篇《在Ngnix上部署Flask应用》
其中虽然用Nginx做了反向代理,但实质上还是没绕开内部 Flask 孱弱的 http server。而 uwsgi,gunicorn 等常见的WSGI框架,只适用于 Linux 平台。
Windows 下,可以使用 Tornado 作为 Flask 的 http server。Tornado 是一个 Python web 框架和异步网络库,起初由 FriendFeed 开发。通过使用非阻塞网络 I/O, Tornado 可以支撑上万级的连接、处理长连接、 WebSockets,和其他需要与每个用户保持长久连接的应用。
实用起来很容易上手,先安装Tornado
pip install tornado
然后新建文件tornado.py
from tornado.httpserver import HTTPServer
from tornado.wsgi import WSGIContainer
from app import webapp
from tornado.ioloop import IOLoop
s = HTTPServer(WSGIContainer(webapp))
s.listen(9900) # 监听 9900 端口
IOLoop.current().start()
其中webapp是Flask项目中创建的应用(可参考《Flask入门》或《Flask开发实践》)
运行tornado.py即可。
其余的Nginx的配置与《在Ngnix上部署Flask应用》没有太大区别,将Flask自带服务器的5000端口改成上面代码中的9900端口,然后重启nginx即可。