Chinaunix首页 | 论坛 | 博客
  • 博客访问: 803573
  • 博文数量: 162
  • 博客积分: 5308
  • 博客等级: 大校
  • 技术积分: 2152
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-15 19:09
个人简介

DevOps让系统管理更轻松。

文章分类

全部博文(162)

文章存档

2014年(28)

2012年(10)

2011年(6)

2009年(60)

2008年(58)

我的朋友

分类: LINUX

2014-02-05 10:59:29

nginx+supervisor+tornado部署

最近写了一个tornado简易在线交流系统架构,其中主要使用的是tornado的长链接来实现对话交流。


自然而然的就牵涉到如何部署tornado的问题,因为我使用tornado是由于他的长链接和异步性。所以不能直接使用tornado.wsgi来部署,这样的话我们就得使用比较方便的


tornado+supervisor,利用supervisor来管理我们的tornado进程。


1. 安装和配置supervisor
    easy_install supervisor
    cd /usr/local/bin
    ./echo_supervisord_conf >> /etc/supervisord.conf

    vim /etc/supervisord.conf


根据你自己的需要修改配置文件,如果不知道如何修改配置文件,可以参考地址:


如下是我自己文件的配置情况,需要注意的是“;”是注释符号。
[plain] view plaincopy
[unix_http_server]  
file=/tmp/supervisor.sock  
  
[inet_http_server]  
port=127.0.0.1:9001  
username=user  
password=123  
  
[supervisord]  
logfile=/tmp/supervisord.log ; (main log file;default $CWD/supervisord.log)  
logfile_maxbytes=50MB        ; (max main logfile bytes b4 rotation;default 50MB)  
logfile_backups=10           ; (num of main logfile rotation backups;default 10)  
loglevel=info                ; (log level;default info; others: debug,warn,trace)  
pidfile=/tmp/supervisord.pid ; (supervisord pidfile;default supervisord.pid)  
nodaemon=false               ; (start in foreground if true;default false)  
minfds=1024                  ; (min. avail startup file descriptors;default 1024)  
minprocs=200    
  
[program:app_8888]  
command=python /home/cloud/cloudchat/init.py  
autostart = true  
autorestart = true  
redirect_stderr=true  
stdout_logfile=/home/cloud/log/app.log 




 
2. 安装和配置nginx
apt-get install nginx
vim /etc/nginx/sites-available/default

同样根据你的需求修改你的配置文件,如下是我自己的配置文件
[plain] view plaincopy
upstream http {  
    server 127.0.0.1:8888;  
}  
  
server {  
        listen  8100;  
        server_name  cloudchat.chinacache.com;  
  
        location / {  
                 proxy_pass          
                 proxy_read_timeout   36000;  
                 proxy_set_header   Host         $host;  
                 proxy_set_header   X-Real-IP        $remote_addr;  
                 proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;  
        }  
    }  


3. 启动supervisor来管理tornado
/usr/bin/python /usr/local/bin/supervisord -c /etc/supervisord.conf

最后需要说明的一点的是你也可以启动多个tornado进程,supervisor是可以管理多个tornado进程的。
这样可以减少一些负载。但是在supervisor配置文件和nginx配置文件需要添加对应进程的配置信息。
阅读(2406) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~