tornado项目部署

tornado项目部署

tornado是一个为了解决高并发的web框架,所以一般部署都会采用多进程部署项目,使之发挥出最大的自身优势(高并发)
1、进程数的确定依据,一般为每个CPU核心开启一个进程
2、安装多进程管理工具supervisor

sudo pip install supervisor

配置supervisor
运行echo_supervisord_conf命令输出默认的配置项,可以如下操作将默认配置保存到文件中

echo_supervisord_conf > supervisord.conf

vim 打开编辑supervisord.conf文件,修改

[include]
files = relative/directory/*.ini

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

include选项指明包含的其他配置文件。

将编辑后的supervisord.conf文件复制到/etc/目录下

sudo cp supervisord.conf /etc/

然后我们在/etc目录下新建子目录supervisor(与配置文件里的选项相同),并在/etc/supervisor/中新建tornado管理的配置文件tornado.conf。

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

[program:tornado-8000]
command=/usr/bin/python /data/py_projects/wechat.py --port=8000
directory=/data/py_projects
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log
loglevel=info

[program:tornado-8001]
command=/usr/bin/python /data/py_projects/wechat.py --port=8001
directory=/data/py_projects
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log
loglevel=info

[program:tornado-8002]
command=/usr/bin/python /data/py_projects/wechat.py --port=8002
directory=/data/py_projects
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log
loglevel=info

[program:tornado-8003]
command=/usr/bin/python /data/py_projects/wechat.py --port=8003
directory=/data/py_projects
user=root
autorestart=true
redirect_stderr=true
stdout_logfile=/home/python/tornado.log
loglevel=info

启动

supervisord -c /etc/supervisord.conf

查看 supervisord 是否在运行:

ps aux | grep supervisord

supervisorctl
我们可以利用supervisorctl来管理supervisor。

supervisorctl

> status    # 查看程序状态
> stop tornadoes:*   # 关闭 tornadoes组 程序
> start tornadoes:*  # 启动 tornadoes组 程序
> restart tornadoes:*    # 重启 tornadoes组 程序
> update    # 重启配置文件修改过的程序
执行status命令时,显示如下信息说明tornado程序运行正常:
supervisor> status
tornadoes:tornado-8000 RUNNING pid 32091, uptime 00:00:02
tornadoes:tornado-8001 RUNNING pid 32092, uptime 00:00:02
tornadoes:tornado-8002 RUNNING pid 32093, uptime 00:00:02
tornadoes:tornado-8003 RUNNING pid 32094, uptime 00:00:02

3、配置NGINX反向代理
修改配置文件


#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    
	#添加内容,如果为多台服务器,IP使用服务器的外网IP
    upstream tornadoes {
        server 127.0.0.1:8000;
        server 127.0.0.1:8001;
        server 127.0.0.1:8002;
        server 127.0.0.1:8003;
    }

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        #添加的内容
     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;  # 协议 http https
        proxy_pass http://tornadoes;
    }

        #location / {
        #    root   html;
        #    index  index.html index.htm;
        #}

       error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

}

重启NGINX

/usr/local/nginx/sbin/nginx -s reload

tornado项目部署完成

猜你喜欢

转载自blog.csdn.net/ithongchou/article/details/83618112