tornado部署

1.为什么要运行多个tornado实例
同步请求时,在应用处理过程中(如数据库查询,磁盘访问),服务器进程不能接受新请求。
所以需要运行多个服务器进程实例。
异步请求时,在应用处理时,服务器进程是非阻塞的,可以接受新请求,因此tornado的非阻塞架构也可以很好地解决这个问题。

2.nginx作反向代理
我们使用nginx作反向代理服务器,nginx会把客户端请求中转到适当的tornado服务器进程。

3.简单的nginx代理配置示例

user nginx;
worker_processes 5;

error_log /var/log/nginx/error.log;

pid /var/run/nginx.pid;

events {
    worker_connections 1024;
    use epoll;
}

proxy_next_upstream error;

upstream tornadoes {
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
    server 127.0.0.1:8003;
}

server {
    listen 80;
    server_name www.example.org *.example.org;

    location /static/ {
        root /var/www/static;
        if ($query_string) {
            expires max;
        }
    }

    location / {
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_redirect off;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_pass http://tornadoes;
    }
}

location /static/:nginx直接提供静态目录的文件,而不再代理请求到tornado
upstream:tornado服务器进程列表
proxy:转发请求的服务器URI
location:nginx反向代理路径

4.Supervisor管理tornado进程
详见supervisor使用详解

原文地址:https://www.cnblogs.com/ExMan/p/10405613.html

时间: 2024-10-07 05:30:03

tornado部署的相关文章

BAE tornado部署

python-web, python-worker选择 如果用于web访问,选择python-web. 其他,可选python-worker. 构建tornado的framework 创建requirements.txt 文件,将 tornado==4.2 添加到文件中(否则,会出现import错误). 创建tornado application. import tornado.wsgi import tornado.web class MainHandler(tornado.web.Reque

Tornado部署与运行

运行多个Tornado实例 网页响应不是特别的计算密集型处理多个实例充分利用 CPU多端口怎么处理4.使用Supervisor监控Tornado进程安装(注意看是否需要指定使用python2版本) sudo pip2 install supervisor安装完之后先启动 sudo supervisord12检查配置文件 /etc/supervisor/supervisord.conf 没有的话自己创建echo_supervisord_conf > /etc/supervisor/supervis

第八章:部署Tornado

到目前为止,为了简单起见,在我们的例子中都是使用单一的Tornado进程运行的.这使得测试应用和快速变更非常简单,但是这不是一个合适的部署策略.部署一个应用到生产环境面临着新的挑战,既包括最优化性能,也包括管理独立进程.本章将介绍强化你的Tornado应用.增加请求吞吐量的策略,以及使得部署Tornado服务器更容易的工具. 8.1 运行多个Tornado实例的原因 在大多数情况下,组合一个网页不是一个特别的计算密集型处理.服务器需要解析请求,取得适当的数据,以及将多个组件组装起来进行响应.如果

Tornado代码分析

转自:http://blog.csdn.net/goldlevi/article/details/7047726 Tornado 采用多进程 + 非阻塞 + epoll的模型,可以提供比较强大的网络响应性能.在我们的项目中,单个实例的灰度发布server就可以支持每秒1500次的请求响应.而通过 Nginx与tornado一起部署,可以同时支持多个实例的运行,从而支持加倍的请求响应,满足当前旺旺用户的升级需求.下图是旺旺灰度发布的架构图: 现在把Tornado里面的部分内容,以及一些重要的资料分

tornado 框架2

转自  http://sebug.net/paper/books/tornado/ Overview FriendFeed使用了一款使用 Python 编写的,相对简单的 非阻塞式 Web 服务器.其应用程序使用的 Web 框架看起来有些像 web.py 或者 Google 的 webapp, 不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化. Tornado 就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本.Tornado 和

Tornado从入门到进阶 打造支持高并发的技术论坛

第1章 Tornado从入门到进阶 打造支持高并发的技术论坛-课程导学Tornado从入门到进阶 打造支持高并发的技术论坛-课程导学 第2章 开发环境搭建(会的可以略过本章,2-4要看下哦)本章节主要讲解搭建开发环境,包括navicat.pycharm.virtualenvwrapper的使用,在本章节也会重点介绍课程资源的下载和配置使用. 第3章 为什么要学习tornado很多人会把tornado和flask以及django相提并论,只是知道tornado是高并发的,但是因为对tornado的

使用Flask+MongoDB实现基于REST的接口简单操作

目录 前言 1 准备工作 2 具体实现 前言 最近在捣鼓如何使用阿里云服务器搭建一个简单的基于Flask框架的后端接口,刚开始为了图方便,就直接买了一个Windows Server 2008系统服务器,这也埋下了不小的坑. 服务买下来后,会给你一个公网IP和内网IP,由于是第一次学习搭建后端接口,对于如何正确使用阿里云服务器,来处理好公网IP和内网IP之间的关系埋下了不小的坑,真是对应的一句话:技术的成长往往是一步一个坑. 下面简单说一下搭建Flask服务器端遇到的问题: 首先,Flask自带了

神级python程序员只需要一个公众号,再也不会错过重要资讯

Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务.它的语法非常简捷和清晰,与其它大多数程序设计语言不一样,它使用缩进来定义语句. Python支持命令式程序设计.面向对象程序设计.函数式编程.面向切面编程.泛型编程多种编程范式.与Scheme.Ruby.Perl.Tcl等动态语言一样,Python具备垃圾回收

tornado + nginx + supervisord 环境部署

学习tornado有一周多了,自己按着demo中的例子手动搬代码,收获还是有的,加深了理解.demo: http://demo.pythoner.com/itt2zh/ch8.html 大概明白了它怎么工作后,开始部署一个线上环境跑跑. nginx: 分配客户端请求给upstream组中列出的Tornado实例.其中静态目录的文件由nginx直接提供. supervisord: tornado进程管理. tornado: 功能实现. 关于nginx 在/etc/nginx/site-enable