tornado + supervisor + nginx + linux 亲身体验

先说说思路

一、安装这些东西,tornado, supervisor( sudo pip install supervisor  在linux 系统上), 安装 nginx  (sudo apt-get install nginx -y) 

二、让supervior 和 已经写好的tornado 服务挂钩 

用supervisor 来管理服务和进程

在命令行里面使用。

然后,再在 supervisord.conf 最后面添加这几行

 

这里tornado center.py 的本地服务地址是8100,写在center.py 文件里面了。

当然为了标准,我们可以添加这几行在这里面,用来产看进程id,还有进程log(unix标准要执行)

 

然后,步骤是

 1)

$ sudo supervisord

2)

$ sudo supervisorctl start all

(当上述命令执行完毕后,系统会自动执行上面所添加的program:segm_cn)

 

三、我们来配置nginx

 

当我们安装完nginx后,我们可以通过

$ sudo service nginx start

来启动。

 

而后,我们需要增加一个新的服务,这里比如说是

tornado

在 /etc/nginx/sites-availble 下新建一个tornado.conf 其内容看似:

# this is the real tornado service                                                                                                                                      
upstream tornado {                                                                                                                                                      
    server 127.0.0.1:8100;                                  # tornado 服务的本地地址,上面说过了是8100端口                                                                                                    
}                                                                                                                                                                       
                                                                                                                                                                        
server {                                                                                                                                                                
    listen   80;                                            # 监听互联网上的80 端口,然后转交给本地的 torando 即8100端口                                                                                                            
    root /home/software/segm_cn;                            # tornado 服务文件所在目录                                                                                                            
    index center.py index.html;                                                                                                                                         
    #index index.py index.html;                                                                                                                                         
                                                                                                                                                                        
    server_name server;                                                                                                                                                 
                                                                                                                                                                        
    location / {                                                                                                                                                        
        if (!-e $request_filename) {                                                                                                                                    
            rewrite ^/(.*)$ /center.py/$1 last;                                                                                                                         
        }                                                                                                                                                               
    }                                                                                                                                                                   
                                                                                                                                                                        
    #location ~ /center\.py {                                                                                                                                           
    location ~ / {                               # 将所有请求,都转交给upstream使用                                                                                                                       
        proxy_pass_header Server;                                                                                                                                       
        proxy_set_header Host $http_host;                                                                                                                               
        proxy_set_header X-Real-IP $remote_addr;                                                                                                                        
        proxy_set_header X-Scheme $scheme;                                                                                                                              
        proxy_pass http://tornado;          # 这里是指向上面的upstream                                                                                                                            
    }                                                                                                                                                                   
}      

 

然后,

$ sudo ln -s /etc/nginx/sites-available/tornado.conf /etc/nginx/sites-enabled/tornado.conf
$ sudo service nginx reload
$ sudo service nginx restart

 

这时候,所有对服务器ip80端口的访问,全部都定向到本地服务的8100端口了。

我们还可以查看一下supervisor的log服务,来查看到底是谁访问的,访问的一个什么程度。

 

好了。很爽!!!

我们分几个简单的步骤

 

posted @ 2014-02-17 17:33  spaceship9  阅读(1916)  评论(0编辑  收藏  举报