centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

时间:2021-09-20 22:28:38

首先,本来不想写这篇博客了,但是我测试了很多网上的例子包括简书的,全不行,我总结原因是自己太笨,搞了俩个晚上,后来决定,自己还是写一篇记录下来,保证自己以后使用

环境:

  centos6.7 64

  python2.7.11

  pip 9.0.1

  nginx1.4.5

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

1.安装nginx

nginx安装方法

[root@pythonS1 ~]# vim /usr/local/nginx1.4.5/conf/nginx.conf
user nginx;
worker_processes ; events {
worker_connections ;
use epoll;
} http{
upstream tornadoes {
server 127.0.0.1:;
server 127.0.0.1:;
server 127.0.0.1:;
server 127.0.0.1:;
} server {
listen ;
server_name localhost; location /static/ {
root /var/www/static;
if ($query_string) {
expires max;
}
} 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://tornadoes;
#proxy_pass http://www.iyunv.com/;
}
}
}

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

2.tornado的代码

我把自己的代码放在了/opt/pythonweb下面

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

3.supervisor安装和使用

启动supervisor的时候报错pkg_resources.DistributionNotFound: meld3>=0.6.5

Traceback (most recent call last):
File "/usr/bin/echo_supervisord_conf", line , in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line , in <module>
File "/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line , in require
File "/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg/pkg_resources.py", line , in resolve
pkg_resources.DistributionNotFound: meld3>=0.6.

解决方法:pip安装的meld3不可用,手动安装。

wget https://pypi.python.org/packages/source/m/meld3/meld3-1.0.2.tar.gz
tar -zxf meld3-1.0..tar.gz
cd meld3-1.0.
python setup.py install

生成配置文件

echo_supervisord_conf > /etc/supervisord.conf

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)配置文件最后添加的内容,注意没有user会报错的

启动服务

/usr/local/nginx1.4.5/sbin/nginx

supervisorctl

start all

4.监控多个进程服务,监控nginx, celery等

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

[program:python]
command=python /opt/pythonweb/hello.py
directory=/opt/pythonweb
autostart=true ; start at supervisord start (default: true)
startretries= ; max # of serial start failures when starting (default )
autorestart=true ; when to restart if exited after running (def: unexpected)
redirect_stderr=true ; redirect proc stderr to stdout (default false)
stdout_logfile=/var/log/nginx.log ; stdout log path, NONE for none; default AUTO
stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups= ; # of stdout logfile backups (default )
stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default )
stdout_events_enabled=false ; emit events on stdout writes (default false)
stderr_logfile=/var/log/nginx_err.log ; stderr log path, NONE for none; default AUTO
stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
stderr_logfile_backups= ; # of stderr logfile backups (default )
stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default )
stderr_events_enabled=false ; emit events on stderr writes (default false)
user=root
supervisorctl start nginx  # 启动 nginx
supervisorctl start all # 启动所有进程
supervisorctl status # 查看进程状态

5.注意每次更新完supervisor以后一定要重启supervisor,ps -ef | grep supervisor ,,,kill