nginx+supervisor+tornado

来源:互联网 发布:树莓派用什么语言编程 编辑:程序博客网 时间:2024/05/07 23:42

最近写了一个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

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

如下是我自己文件的配置情况,需要注意的是“;”是注释符号。

[unix_http_server]file=/tmp/supervisor.sock[inet_http_server]port=127.0.0.1:9001username=userpassword=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.pyautostart = trueautorestart = trueredirect_stderr=truestdout_logfile=/home/cloud/log/app.log

2. 安装和配置nginx

apt-get install nginx

vim /etc/nginx/sites-available/default

同样根据你的需求修改你的配置文件,如下是我自己的配置文件

upstream http {    server 127.0.0.1:8888;}server {        listen  8100;        server_name  cloudchat.chinacache.com;        location / {                 proxy_pass        http://127.0.0.1:8888;                 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配置文件需要添加对应进程的配置信息。

   




原创粉丝点击