将Flask应用程序部署在nginx,tornado的简单方法
来自:http://www.xuebuyuan.com/618750.html
在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能力太差,不过服务器上面的环境也够乱的有python2,python3,最后实在折腾得不行了,将uwsgi换成tornado,非常简单就搞定了,记录一下步骤,供以后参考:
软件怎么安装就不必说了,说说几个关键的地方:
#coding=utf-8
#!/usr/bin/python
from somewhere import app #somewhere 表示的包含Flask的实例,如app = Flask(__name__)
if __name__ == "__main__":
app.run(debug=True)
2。在run.py的同级目录添加tornado应用程序tornado_server.py来托管run.py,代码如下:
#coding=utf-8
#!/usr/bin/python
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from run import app
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000) #flask默认的端口
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 就可以生效:
# nginx -s reload
看来tornado还是非常不错的,一直知道它的性能优秀,以后有空得好好研究一下。
将Flask应用程序部署在nginx,tornado的简单方法的更多相关文章
- 采用flask+uwsgi+nginx架构将flask应用程序部署在腾讯云
最近一星期加班为学校做了一个教师发展中心平台,在此总结一下部署经验 环境:Centos7.0 python2.7.5 1.安装nginx 命令行输入指令:sudo yum install nginx ...
- 部署项目Nginx+Tornado+Supervisor
http://www.jianshu.com/p/9bebb99368ea Tornado Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻 ...
- 解决IE apk变成zip:Android 手机应用程序文件下载服务器Nginx+Tomcat配置解决方法
APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...
- 一次请求中,经过 nginx+uWSGI+flask应用程序搭建服务的执行过程
Flask框架有自带的http server,但是缺点非常明显,并发能力,及时响应非常差,只适合开发时自测使用. 在我接触过的项目中,生产环境使用nginx+uWSGI+flask应用程序进行部署服务 ...
- nginx+uwsgi+flask+supervisor 项目部署
环境 - Linux: Ubuntu 16.04 - uWSGI 2.0.18 - Flask 1.0.2 - supervisor 3.2.0 - nginx/1.8.1 首先区分几个概念 WSGI ...
- 从docker到docker-compose部署一个nginx+flask+mysql+redis应用
目的是把一个flask项目的mysql数据库.redis数据库.flask应用.nginx服务分别装到四个容器中,然后用docker-compose命令同时启动与关闭 一.安装docker Docke ...
- Flask测试和部署
一 蓝图Blueprint 为什么学习蓝图? 我们学习Flask框架,是从写单个文件,执行hello world开始的.我们在这单个文件中可以定义路由.视图函数.定义模型等等.但这显然存在一个问题:随 ...
- Flask—10-项目部署(02)
项目部署 WEB工作原理 客户端(chrom) <=> WEB服务器(nginx) <=> WSGI(uWSGI) <=> Python(Flask) <=& ...
- tms web core程序部署
tms web core程序部署 笔者把已经开发好的TMS WEB CORE程序部署到阿里云服务器上面,来作为例子. 1)复制TMS WEB CORE前端程序到服务器的c:\room\ 2)复制TMS ...
随机推荐
- CSS3中nth-of-type和nth-last-of-type
1.使用nth-child和nth-last-child时会产生的问题 在使用nth-child和nth-last-child时,其计算子元素是奇数个元素还是第偶数个元素时,是连同父元素中的所有子元素 ...
- CSS基础之盒子模型及浮动布局
盒模型 谈到盒模型,有经验的小伙伴一定滚瓜烂熟,无非就是 内容(content).填充(padding).边框(border).边界(margin): 这些属性我们可以把它转移到我们日常生活中的盒子( ...
- flume1.8 开发指南学习感悟
概述: Apache Flume是一个分布式.可用的系统,用于从许多不同的sources有效的收集并移动大量日志数据用于集中存储数据. 架构及数据流动模型: flume实际上就是一个Agent.Age ...
- happymall 第十一章订单表 数据表设计
为订单号生成唯一索引,用用户id和订单号生成组合索引提高查询效率.
- android studio无法识别含有rcs包名的jar
http://blog.csdn.net/JingleYe/article/details/70048943 android studio无法识别含有rcs包名的jar android stu ...
- Oracle_创建用户_授予权限
Oracle_创建用户_授予权限 --创建用户,需要足够的权限 create create user hzf identified by hzf; --给用户bjsxt分配权限 grant ...
- DEDE在图集列表中调出图集的所有图片[首页也适用]
在include/common.func.php 中添加以下函数代码 代码如下: // 在图集列表中调出图集的所有图片 function Getimgs($aid, $imgwith = 220, ...
- 通过JiaThis API接口自定义分享功能按钮实现分享功能本地化
http://www.mdaima.com/jingyan/20.html 最早李雷博客采用的是百度分享插件,为此还发过博文讲解如何在一个页面调用多个按钮分享不同的文章,感兴趣的朋友可以在本站搜索一下 ...
- kafka和strom集群的环境安装
前言 storm和kafka集群安装是没有必然联系的,我将这两个写在一起,是因为他们都是由zookeeper进行管理的,也都依赖于JDK的环境,为了不重复再写一遍配置,所以我将这两个写在一起.若只需一 ...
- mysql批量数据脚本
mysql批量数据脚本 1 建表 create table dept( id int unsigned primary key auto_increment, deptno mediumint uns ...