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配置文件需要添加对应进程的配置信息。
阅读(2460) | 评论(0) | 转发(0) |