python+Tornado + Supervisor + nginx部署

1.安装python 2.6.6

wget http://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz

tar -xvzf Python-2.6.6.tgz

cd Python-2.6.6

./configure 

make

make install

2.tornado 安装

http://www.tornadoweb.org/

下载 tornado-2.3.tar.gz

tar xvf tornado-2.3.tar.gz

cd tornado-2.3

python setup.py install

3.setuptools安装

http://pypi.python.org/pypi/setuptools#files

系统要安装python,并安装与之对应的setuptools,下载地址在此

安装:

# sh setuptoolsxxxx.egg

4.supervisor安装

supervisor安装非常方便,

easy_install supervisor就可以  

或者下载地址在此,解压缩后#python setup.py install

# echo_supervisord_conf > /etc/supervisord.conf

修改/etc/supervisord.conf文件  添加

[program:tornado_poll]

command=python /home/wangwang/helloworld/helloworld.py –port=80%(process_num)02d              ; 要执行的命令,这里的“%(process_num)02d”会用2位精度的进程号替换,例如,第一个进程是8001,第二个进程是8002,以此类推,下同。

process_name=%(program_name)s-80%(process_num)02d   ; process_name expr (default %(program_name)s)      ;启动的进程的名字,这里的名字只是supervisor内部是别用,与你所启动程序的进程名无关

numprocs=2                   ; 启动几个tornado进程

directory=/home/wangwang/helloworld                ; 运行前cd到此目录

autostart=true                ; supervisord守护程序启动时自动启动tornado

autorestart=true              ; supervisord守护程序重启时自动重启tornado

user=www-data                   ; 运行程序前su到此用户

redirect_stderr=true          ; 将stderr重定向到stdout

stdout_logfile=/home/wangwang/helloworld/python_log        ; 记录控制台输出的日志位置

5.tornado 入口

###############  helloworld.py  ###############

#coding=utf-8

import sys

import tornado.httpserver

import tornado.ioloop

import tornado.options

import tornado.web

from tornado.options import define, options

#define("port", default=8888, help="run on the given port", type=int)

port = int(sys.argv[1].split('=')[1])

if port == 0:

    exit(1)

class MainHandler(tornado.web.RequestHandler):

    def get(self):

       content = "hello ,world from port: %s" % port

        self.write(content)

def main():

    application = tornado.web.Application([

        (r"/", MainHandler),

    ])

    http_server = tornado.httpserver.HTTPServer(application)

    http_server.listen(port)

    tornado.ioloop.IOLoop.instance().start()

if __name__ == "__main__":

    main()

supervisor进程管理

#开启 supervisor:

#supervisord

#管理进程

#supervisorctl 

>status/stop/start/restart

stop all #停止所有进程

stop tornado_poll:tornado_poll-8000 #停止运行在8000端口上的Tornado守护进程

stop tornado_poll:* #停止所有


#nginx 做反向代理实现负载均衡

http://ftp.exim.llorien.org/pcre/

tar xvf pcre-6.5.tar.gz

cd pcre-6.5

./configure

make 

make install

http://nginx.org/en/download.html

 tar zxvf nginx-1.2.1.tar.gz

 cd nginx-1.2.1

 ./configure --with-http_stub_status_module --prefix=/usr/local/webserver/nginx

 make && make install

修改 nginx/conf/nginx.conf

worker_processes  1;

error_log  logs/error.log;

pid        logs/nginx.pid;

events {

use epoll;  

    worker_connections  1024;

}

http {

    include       mime.types;

    default_type  application/octet-stream;

    access_log  logs/access.log;

    sendfile        on;

    keepalive_timeout  65;

    upstream frontends {

        server 127.0.0.1:8000;

        server 127.0.0.1:8001;

    }

    server {

        listen 80;

        client_max_body_size 50M;

        location ^~ /static/ {

            root /home/wangwang/helloworld;

            if ($query_string) {

                expires max;

            }

        }

        location = /favicon.ico {

            rewrite (.*) /static/favicon.ico;

        }

        location = /robots.txt {

            rewrite (.*) /static/robots.txt;

        }

        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://frontends;

        }

    }

}


nginx/sbin/nginx -t  -c nginx/conf/nginx.conf  #检测配置文件是否正常

nginx/sbin/nginx   -c nginx/conf/nginx.conf  #开启nginx

访问:http://127.0.0.1/

hello ,world from port: 8000  / hello ,world from port: 8001

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值