DevOps让系统管理更轻松。
分类: Python/Ruby
2014-02-05 11:00:30
Tornado+nginx+supervisor 在生产环境上部署
是 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本,是属于facebook的一个开源项目。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其 非阻塞的方式和对 的运用,Tornado 每秒可以处理数以千计的连接,这意味着对于实时 Web 服务来说,Tornado 是一个理想的 Web 框架。我们开发这个 Web 服务器的主要目的就是为了处理 FriendFeed 的实时功能 ——在 FriendFeed 的应用里每一个活动用户都会保持着一个服务器连接。参考文档
nginx就不多说了,很著名的web 服务器。
supervisor
supervisor 是一个守护进程管理软件,是把linux上众多的守护进行集中在supervisor 进行统一的管理。
安装:
shell> sudo apt-get install supervisor # pip/easy_install
或者用pip 或者easy_install 也可以进行安装。
安装后配置文件
/usr/bin/supervisord --supervisor服务守护进程
/usr/bin/supervisorctl --supervisor服务控制程序,比如:status/start/stop/restartxx等
/etc/supervisor/supervisord.conf --配置文件,定义服务名称以及接口等等
配置一个守护进程:
我们在/etc/supervisor/conf.d文件添加文件interview.conf,里面进行配置
[program:interview]
#设置守护进程名
command=python /home/www/python/interview/web.py #设置command 路径
autorstart=true #是否自动启动
stdout_logfile=/home/www/python/interview/interview.log #设置日志路径
shell>sudo/etc/init.d/supervisor start--启动supervisor服务
shell>sudo supervisorctl status interview --获取interview 服务的状态,因为是autorstart,这里已经启动了
interview RUNNING pid1159,uptime0:20:32
shell>sudo supervisorctl stop interview --停止interview 服务
interview :stopped
shell>sudo supervisorctl stop interview --再次停止interview ,会有错误信息
interview :ERROR(notrunning)
shell>sudo supervisorctl start interview --启动interview 服务interview :started
参考网站
用nginx代理转发
在nginx sites-enabled 文件夹里面新建 interview文件
upstream frontends {
server 192.168.52.128:8080;
#supervisor控制的域名
}
server {
listen 8888; #监听端口
location / {
proxy_read_timeout 1800;
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 ;
}
}
这样子我们访问192.168.52.128:8888就会转发到192.168.52.128:8080 上,就可以实现nginx配置的 了。
问题:据介绍supervisor是可以通过配置进行web访问查看的,但本人没有配置成功!