Windows环境将Flask应用程序部署在tornado+nginx的简单方法
1、Flask的入口程序为manage.py,代码如下:
#coding=utf-8#!/usr/bin/python
fromsomewhereimportapp#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/pythonfromtornado.wsgiimportWSGIContainerfromtornado.httpserverimportHTTPServerfromtornado.ioloopimportIOLoopfromrunimportapphttp_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 reloader
但是在生产环境中得部署到性能好的nginx上,nginx配置如下:
server {
listen 80;
server_name abc.com;
rewrite ^(.*) http://www.abc.com$1 permanent;
}
server{
listen 80;
#listen [::]:80 default_server;
#access_log /var/log/nginx/win2003_access.log main;
#include header_proxy.inc;
server_name www.abc.com;
#root /var/www/abc;
location / {
#index index.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 就可以生效:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。