菜蜂 发表于 2018-11-16 11:40:34

Windows环境将Flask应用程序部署在tornado+nginx的简单方法

  1、Flask的入口程序为manage.py,代码如下:
  #coding=utf-8#!/usr/bin/python
from somewhere import app#somewhere 表示的包含Flask的实例,如app = Flask(__name__)  
if __name__ == "__main__":
  
    app.run(debug=True)
  2、在manage.py的同级目录添加tornado应用程序tornado_server.py来托管manage.py,代码如下:
#coding=utf-8#!/usr/bin/python  
from tornado.wsgi import WSGIContainerfrom tornado.httpserver import HTTPServerfrom tornado.ioloop import IOLoopfrom run import app
  
http_server = HTTPServer(WSGIContainer(app))
  
http_server.bind(5000, "0.0.0.0")# 对外开启访问
  
http_server.start(1)
  
# http_server.listen(5000)#或者只监听127.0.0.1的默认端口
  
IOLoop.instance().start()
  3.如果直接运行python tornado_server.py会正常运行,输出如下:
  * Running on http://127.0.0.1:5000/

  * Restarting with>  但是在生产环境中得部署到性能好的nginx上,nginx配置如下:
  server {
  listen   80;
  server_nameabc.com;
  rewrite ^(.*) http://www.abc.com$1 permanent;
  }
  server{
  listen 80;
  #listen [::]:80 default_server;
  #access_log/var/log/nginx/win2003_access.logmain;
  #include header_proxy.inc;
  server_name www.abc.com;
  #root   /var/www/abc;
  location / {
  #indexindex.html index.htm index.php;
  #include uwsgi_params;
  #uwsgi_pass unix:/tmp/uwsgi.sock;
  proxy_pass http://localhost:5000;    #关键一点就是这里,意思是所有对http://www.abc.com:80的访问都会重定向到本机的5000端口上
  }
  }
  别的一些优化比如静态文件暂没有让 nginx代理
  配置好后只需要重载一下nginx 就可以生效:


页: [1]
查看完整版本: Windows环境将Flask应用程序部署在tornado+nginx的简单方法