码迷,mamicode.com
首页 > 其他好文 > 详细

tornado + nginx + supervisord 环境部署

时间:2015-07-27 20:40:56      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

     学习tornado有一周多了,自己按着demo中的例子手动搬代码,收获还是有的,加深了理解。demo: http://demo.pythoner.com/itt2zh/ch8.html 

大概明白了它怎么工作后,开始部署一个线上环境跑跑。

     nginx: 分配客户端请求给upstream组中列出的Tornado实例。其中静态目录的文件由nginx直接提供。

     supervisord: tornado进程管理。

     tornado: 功能实现。

 关于nginx

在/etc/nginx/site-enable/default中 新增:

upstream frontends{
    server 127.0.0.1:8880;
}

server {
    listen 8000;
 
    location / {
        proxy_read_timeout 1800;
        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://frontends;
    }
}

 关于supervisord

确认是否已install supervisord,安装后可查看状态“sudo supervisorctl status”;

$ vi /etc/supervisor/supervisord.conf

; supervisor config file

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor            ; (AUTO child log dir, default $TEMP)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf

"

[include]
files = /etc/supervisor/conf.d/*.conf

"

即可在/etc/supervisor/conf.d/ 目录下$vi tornado_demo.conf

[program:tornado_demo]
command=python /var/www/tornado_example/munger/main.py --port=8880
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile = /var/log/munger/munger.log
stderr_logfile = /var/log/munger/error.log

关于tornado

实例使用 http://demo.pythoner.com/itt2zh/ch2.html  

2.3 复杂示例:The Alpha Munger 例子即可。

 

其中 重点需要关注的是supervisord的用法。

1. sudo supervisorctl stop tornado_demo

2. sudo supervisorctl start tornado_demo

3. sudo supervisorctl status

4. sudo /etc/init.d/supervisor start/stop/restart/reload

 修改*.conf文件后,需要reload

 

参考链接:

1. http://gracece.com/2014/03/Tornado-supervisor+nginx/ 

2. http://blog.csdn.net/tengzhaorong/article/details/12833157

3. https://serholiu.com/tornado-nginx-supervisord

tornado + nginx + supervisord 环境部署

标签:

原文地址:http://www.cnblogs.com/tangkaixin/p/4680910.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!