• Tornado部署与运行


    运行多个Tornado实例

    网页响应不是特别的计算密集型处理
    多个实例充分利用 CPU
    多端口怎么处理
    4.
    使用Supervisor监控Tornado进程
    安装(注意看是否需要指定使用python2版本)

    sudo pip2 install supervisor
    安装完之后先启动 sudo supervisord
    1
    2
    检查配置文件 /etc/supervisor/supervisord.conf 没有的话自己创建
    echo_supervisord_conf > /etc/supervisor/supervisord.conf

    增加 Supervisor 配置文件到 /etc/supervisor/conf.d
    增加一个tornadoes组

    [group:tornadoes]
    programs=tornado-8000,tornado-8001,tornado-8002

    # 分别定义三个tornado的进程配置

    [program:tornado-8000]
    directory=/home/pyvip/ws/tudo/ ; 程序的启动目录
    command=/home/pyvip/.virtualenvs/py3/bin/python app.py --port=8080 ; 启动命令,与手动在命令行启动的命令是一样的,注意这里home不可用~代替
    autostart=true ; 在 supervisord 启动的时候也自动启动
    startsecs=5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
    autorestart=true ; 程序异常退出后自动重启
    startretries=3 ; 启动失败自动重试次数,默认是 3
    user=pyvip ; 用哪个用户启动
    redirect_stderr=true ; 把 stderr 重定向到 stdout,默认 false
    stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
    stdout_logfile_backups = 20 ; stdout 日志文件备份数
    ; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
    stdout_logfile = /tmp/tornado_app_8000.log
    loglevel=info

    [program:tornado-8001]
    directory=/home/pyvip/ws/tudo/
    command=/home/pyvip/.virtualenvs/tornado/bin/python app.py --port=8001
    autostart=true
    startsecs=5
    autorestart=true
    startretries=3
    user=pyvip
    redirect_stderr=true
    stdout_logfile_maxbytes = 20MB
    stdout_logfile_backups = 20
    stdout_logfile = /tmp/tornado_app_8001.log
    loglevel=info

    [program:tornado-8002]
    directory=/home/pyvip/ws/tudo/
    command=/home/pyvip/.virtualenvs/tornado/bin/python app.py --port=8002
    autostart=true
    startsecs=5
    autorestart=true
    startretries=3
    user=pyvip
    redirect_stderr=true
    stdout_logfile_maxbytes = 20MB
    stdout_logfile_backups = 20
    stdout_logfile = /tmp/tornado_app_8002.log
    loglevel=info
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    启动和管理

    启动supervisor

    使用默认的配置文件 /etc/supervisor/supervisord.conf

    sudo supervisord

    明确指定配置文件

    sudo supervisord -c /home/pyvip/working/supervisord.con

    使用 user 用户启动supervisord

    sudo supervisord -u user

    查看、操作进程状态

    (tornado) pyvip@Vip:~/ws/tudo$ sudo supervisorctl

    [sudo] password for pyvip:

    tornadoes:tornado-8000 RUNNING pid 17652, uptime 0:00:28

    tornadoes:tornado-8001 RUNNING pid 17653, uptime 0:00:28

    tornadoes:tornado-8002 RUNNING pid 17654, uptime 0:00:28

    停止运行tornado-8001服务器进程
    supervisor> stop tornadoes:tornado-8001

    tornados:tornado-8001: stopped

    停止运行整个tornado服务器进程组
    supervisor> stop tornadoes:

    tornadoes:tornado-8000: stopped

    tornadoes:tornado-8001: stopped

    tornadoes:tornado-8002: stopped

    supervisor> status

    tornadoes:tornado-8000 STOPPED Jun 26 07:43 PM

    tornadoes:tornado-8001 STOPPED Jun 26 07:43 PM

    tornadoes:tornado-8002 STOPPED Jun 26 07:43 PM

    supervisorctl 命令介绍

    停止某一个进程,program_name 为 [program:x] 里的 x

    supervisorctl stop program_name

    启动某个进程

    supervisorctl start program_name

    重启某个进程

    supervisorctl restart program_name

    结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)

    supervisorctl stop groupworker:

    结束 groupworker:name1 这个进程 (start,restart 同理)

    supervisorctl stop groupworker:name1

    停止全部进程,注:start、restart、stop 都不会载入最新的配置文件

    supervisorctl stop all

    载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程

    supervisorctl reload

    根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启

    supervisorctl update

    如果让supervisor 在web页面上展示,需要修改/etc/supervisor/supervisord.conf配置文件(有用户名密码),然后按照以下方式重新加载:

    sudo supervisorctl -u user -p 123 reload

    使用 Nginx 作为反向代理
    搭配 tornado 服务使用

    安装和运行

    安装
    sudo apt-get install nginx
    检测配置文件正确可用
    sudo nginx -t
    运行
    sudo nginx
    修改了配置文件后重启
    sudo nginx -s reload
    nginx 配置文件

    主配置文件是 /etc/nginx/nginx.conf

    项目对应的配置文件放到 /etc/nginx/conf.d/ 或者 /etc/nginx/sites-enabled/

    upstream tornadoes{
    server 127.0.0.1:8000;
    server 127.0.0.1:8001;
    server 127.0.0.1:8002;
    }

    proxy_next_upstream error;

    server {
    listen 8888; # 一般是 80
    server_name 127.0.0.1;

    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;
    # 把请求方向代理传给tornado服务器,负载均衡
    proxy_pass http://tornadoes;
    }
    }
     

  • 相关阅读:
    Centos 7.3 配置Xmanager XDMCP
    xstart使用方法
    Linux下安装xwindow图形界面
    使用Xftp连接Centos 6.6服务器详细图文教程
    linux远程管理器
    xftp的使用教程
    CentOS 7 关闭图形界面
    Java反射机制
    java反射的性能问题
    Java 虚拟机面试题全面解析(干货)
  • 原文地址:https://www.cnblogs.com/ExMan/p/10405661.html
Copyright © 2020-2023  润新知