tonadoはsupervisor管理プロセスを使って、nginxを使って負荷の均衡を作ります。

2788 ワード

tonadoはsupervisor管理プロセスを使って、nginxを使って負荷の均衡を作ります。
配置
load banlancerとしてnginxを採用しています。
nginx       ,  /etc/nginx/sites-avaiable/ ,   sites-enable       
nginx        include sites-enable    。
         http{}   include

upstream detect_data_server {
server 127.0.0.1:8001;
server 127.0.0.1:8002;
server 127.0.0.1:8003;
server 127.0.0.1:8004;
}

# Only retry if there was a communication error, not a timeout
# on the Tornado server (to avoid propagating "queries of death"
# to all frontends)
# proxy_next_upstream error;  # this has been in nginx.conf

server {
    listen 80;

    location / {
        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://detect_data_server;
    }
}

実行コマンド:
sudo cp /home/opsys/running/detect-datacollect-server/deploy/detect-datacollect-server.conf 
    /etc/nginx/sites-available
sudo ln -s /etc/nginx/sites-available/detect-datacollect-server.conf 
    /etc/nginx/sites-enabled/detect-datacollect-server.conf
sudo service nginx start

注意:
  • nginxを起動する時は、sites-availableディレクトリの下のdefaultに注意してください。inx.com fでincludeが不要になりました。このファイル
  • システムによって対応するディレクトリが異なりますので、
  • に注意してください。
    supervisorを使って管理します。
      supervisor   apt-get install   
      /etc/supervisor/conf.d/    。 nginx  ,supervisor        
     /etc/supervisor/supervisord.conf,      include conf.d    
    
         :
    
    ; To take advantage of multiple cores, you'll need multiple processes.
    [group:gp_detect_data]
    programs=detect_data
    
    [program:detect_data]
    ; environment=MODE="TEST"  ; TEST for test environ. 
    command=python /home/opsys/running/detect-datacollect-server/code/app.py --port=80%(process_num)02d
    process_name = %(program_name)s%(process_num)d
    autorestart=true
    redirect_stderr=true
    stdout_logfile=/home/opsys/log/detect-data-stdout.log
    stdout_logfile_maxbytes=50MB
    stdout_logfile_backups=10
    stderr_logfile=/home/opsys/log/detect-data-stderr.log
    loglevel=info
    numprocs = 4
    numprocs_start = 1
    
    
    実行コマンド:
    sudo cp /home/opsys/running/detect-datacollect-server/conf/supervisor/detect_data.conf
        /etc/supervisor/conf.d/
    sudo service supervisor start
    
    
    ログディレクトリ
    具体的にはプロファイルの構成を見ます。
  • プログラムのロゴ:/home/opsys/log/detect-data-stdout.log
  • supervisorのロゴ:/var/log/supervisor/supervisor.log
  • nginx logs:/var/log/inx/
  • 参照
    https://github.com/tornadoweb/tornado/wiki/Deployment
    https://gist.github.com/didip/802561
    http://gracece.com/2014/03/Tornado-supervisor+inx/
    http://www.tornadoweb.org/en/stable/guide/running.html
    第八章:https://github.com/alioth310/itt2zh/blob/master/ch8.html