来自:http://www.xuebuyuan.com/618750.html

在网上搜索了一下部署flask应用的方法,大部分是用wsgi部署在nginx上面,部署了很久,都没有成功,可能是我领悟能力太差,不过服务器上面的环境也够乱的有python2,python3,最后实在折腾得不行了,将uwsgi换成tornado,非常简单就搞定了,记录一下步骤,供以后参考:

软件怎么安装就不必说了,说说几个关键的地方:

1。Flask的入口程序为run.py,代码如下:

#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的简单方法的更多相关文章

  1. 采用flask+uwsgi+nginx架构将flask应用程序部署在腾讯云

    最近一星期加班为学校做了一个教师发展中心平台,在此总结一下部署经验 环境:Centos7.0  python2.7.5 1.安装nginx 命令行输入指令:sudo yum install nginx ...

  2. 部署项目Nginx+Tornado+Supervisor

    http://www.jianshu.com/p/9bebb99368ea Tornado Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻 ...

  3. 解决IE apk变成zip:Android 手机应用程序文件下载服务器Nginx+Tomcat配置解决方法

    APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是Dalvik VM executes的全称,即Android Dalvik执行程序,并非Java ...

  4. 一次请求中,经过 nginx+uWSGI+flask应用程序搭建服务的执行过程

    Flask框架有自带的http server,但是缺点非常明显,并发能力,及时响应非常差,只适合开发时自测使用. 在我接触过的项目中,生产环境使用nginx+uWSGI+flask应用程序进行部署服务 ...

  5. 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 ...

  6. 从docker到docker-compose部署一个nginx+flask+mysql+redis应用

    目的是把一个flask项目的mysql数据库.redis数据库.flask应用.nginx服务分别装到四个容器中,然后用docker-compose命令同时启动与关闭 一.安装docker Docke ...

  7. Flask测试和部署

    一 蓝图Blueprint 为什么学习蓝图? 我们学习Flask框架,是从写单个文件,执行hello world开始的.我们在这单个文件中可以定义路由.视图函数.定义模型等等.但这显然存在一个问题:随 ...

  8. Flask—10-项目部署(02)

    项目部署 WEB工作原理 客户端(chrom) <=> WEB服务器(nginx) <=> WSGI(uWSGI) <=> Python(Flask) <=& ...

  9. tms web core程序部署

    tms web core程序部署 笔者把已经开发好的TMS WEB CORE程序部署到阿里云服务器上面,来作为例子. 1)复制TMS WEB CORE前端程序到服务器的c:\room\ 2)复制TMS ...

随机推荐

  1. MATLAB R2017a 安装与破解

    第一步: 到我的百度网盘下载MatlAB2017a的原安装程序和破解补丁: 链接:https://pan.baidu.com/s/1jJz97DW 提取密码: d59m 第二步: 下载的两个iso文件 ...

  2. JavaWeb(二)cookie与session的应用

    前言 前面讲了一堆虚的东西,所以这篇我们来介绍一下cookie和session的应用. 一.使用cookie记住用户名 1.1.思路介绍 1.2.实现代码 1)LoginServlet package ...

  3. POJ1635:Subway tree systems

    链接:http://poj.org/problem?id=1635 填坑树同构 题目给出的是除根外的括号序列表示. 其实只要跟你说hash大家都能写得出来…… hash函数取个效果别太差的就行了吧 # ...

  4. Vijos P1786 质因数分解【暴力】

    质因数分解 背景 NOIP2012普及组第一题 描述 已知正整数n是两个不同的质数的乘积试求出较大的那个质数. 格式 输入格式 输入只有一行包含一个正整数n. 输出格式 输出只有一行包含一个正整数p, ...

  5. UESTC30-最短路-Floyd最短路、spfa+链式前向星建图

    最短路 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) 在每年的校赛里,所有进入决赛的同 ...

  6. c++(查找)

    无论是数据库,还是普通的ERP系统,查找功能数据处理的一个基本功能.数据查找并不复杂,但是如何实现数据又快又好地查找呢?前人在实践中积累的一些方法,值得我们好好学些一下.我们假定查找的数据唯一存在,数 ...

  7. [国嵌笔记][019][Eclipse集成开发环境]

    Eclipse集成开发环境的作用 可以编译程序,也可以对程序进行在线调试 集成开发环境 1.JLink连接开发板的JTAG 2.JLink连接PC的USB 3.eclipse软件 4.gdb serv ...

  8. [国嵌笔记][028][Bootloader设计蓝图]

    Bootloader的作用就是启动Linux内核 U-Boot简介 1.U-Boot是用于多种嵌入式CPU(ARM.x86.MIPS等)的bootloader程序,U-Boot不仅支持嵌入式Linux ...

  9. 《你不知道的JavaScript上卷》知识点笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px "PingFang SC" } p.p2 { margin: 0.0px ...

  10. HDU 1979 Red and Black

    题目: There is a rectangular room, covered with square tiles. Each tile is colored either red or black ...