• supervisord常见命令
  1. supervisorctl shutdown 关闭命令
  2.  
  3. supervisord -c /etc/supervisord.conf 启动supervisord
  4.  
  5. supervisorctl restart all // 重启所有
  6.  
  7. supervisorctl restart program-name // 重启某一进程,program-name为[program:xx]中的xx
  8.  
  9. supervisorctl status //查看supervisord状态
  • 生成配置文件
  1. echo_supervisord_conf > /etc/supervisord.conf
  • 编辑配置文件
  1. 由于配置文件生成在etc目录下,我们要做进一步配置
    带有;的行是被注释的,并不真正发挥作用
  2. [program:olddream]
  3. command=python3 /dingshub/olddream/server.py --port=
    ; 注意上面一行配置,由于我在linuxpython建立的软链接名为python3,各程序员实践的时候需要按照情况作调整
  4. ;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
  5. ;numprocs= ; number of processes copies to start (def )
  6. directory=/dingshub/olddream/ ; 网站文件夹实际路径,这一路经下放着tornado的起始配置文件server.py
  7. ;umask= ; umask for process (default None)
  8. ;priority= ; the relative start priority (default )
  9. autostart=true ; start at supervisord start (default: true)
  10. ;autorestart=unexpected ; whether/when to restart (default: unexpected)
  11. ;startsecs= ; number of secs prog must stay running (def. )
  12. ;startretries= ; max # of serial start failures (default )
  13. ;exitcodes=, ; 'expected' exit codes for process (default ,)
  14. ;stopsignal=QUIT ; signal used to kill process (default TERM)
  15. ;stopwaitsecs= ; max num secs to wait b4 SIGKILL (default )
  16. ;stopasgroup=false ; send stop signal to the UNIX process group (default false)
  17. ;killasgroup=false ; SIGKILL the UNIX process group (def false)
  18. ;user=chrism ; setuid to this UNIX account to run the program
  19. redirect_stderr=true ; redirect proc stderr to stdout (default false)
  20. stdout_logfile=/dingshub/olddream/dings.log ; 最好设置一个log日志文件
  21. ;stdout_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  22. ;stdout_logfile_backups= ; # of stdout logfile backups (default )
  23. ;stdout_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default )
  24. ;stdout_events_enabled=false ; emit events on stdout writes (default false)
  25. ;stderr_logfile=/a/path ; stderr log path, NONE for none; default AUTO
  26. ;stderr_logfile_maxbytes=1MB ; max # logfile bytes b4 rotation (default 50MB)
  27. ;stderr_logfile_backups= ; # of stderr logfile backups (default )
  28. ;stderr_capture_maxbytes=1MB ; number of bytes in 'capturemode' (default )
  29. ;stderr_events_enabled=false ; emit events on stderr writes (default false)
  30. ;environment=A="",B="" ; process environment additions (def no adds)
  31. ;serverurl=AUTO ; override serverurl computation (childutils)
  32. loglevel=info           ; 这是一个中等级别的日志
  • nginx配置(一个地址多个站点)
  1. 分站点配置---这是tornado网站的配置细节
  2.  
  3. 我的nginx是通过编译源代码安装的,在nginx的安装目录下,新建一个vhosts文件夹(如果没有的话)
    vhosts文件夹下建立以 .conf为后缀的文件
    例如:

  upstream tornados{

    server 127.0.0.1:8989; #可以发现这里8989端口与supervisord中的端口一致
    server 127.0.0.1:8021;
    server 127.0.0.1:8022;
  }
  proxy_next_upstream error;

  server {
  listen 8989;
  server_name sniffcpcssocks.com;
  root /dingshub/olddream;
  index server.py;

  # 静态文件直接由Nginx处理
  location /static/{
  alias /data/web/advance_python/tornado_asyn/img/;
  expires 24h;
  }
  location /{
  proxy_pass_header Server;
  proxy_set_header Host $http_host;
  proxy_redirect off;
  proxy_set_header X-Real-IP $remote_addr;
  # 把请求方向代理传给tornado服务器,负载均衡
  proxy_pass http://tornados;
  }
 }

  • nginx conf文件夹下 nginx.conf主文件配置(我也并不了解nginx配置要诀---这种配置起码可以保证网站跑起来)
  1. worker_processes ;
  2.  
  3. events {
  4. worker_connections ;
  5. }
  6.  
  7. http {
  8. include mime.types;
  9. default_type application/octet-stream;
  10. include /nginx/vhosts/*.conf; #这一句是一个ip地址,多个站点配置的关键
  11. sendfile on;
  12. keepalive_timeout 65;
  13.  
  14. server {
  15. listen 8999;
  16. server_name localhost;
  17.  
  18. location / {
  19. root html;
  20. index index.html index.htm;
  21. }
  22.  
  23. error_page 500 502 503 504 /50x.html;
  24. location = /50x.html {
  25. root html;
  26. }
  27.  
  28. }
  29.  
  30. }
  • tornado网站主程序文件server.py(注意!这一程序文件里,不要出现任何注释符号,还有中文,因为supervisord执行时可能会出现异常)
  1. import tornado.ioloop
  2.  
  3. import tornado.web
  4.  
  5. import tornado.httpserver
  6.  
  7. import os
  8.  
  9. ..........
  10.  
  11. settings={
  12.  
  13. 'template_path':os.path.join(os.getcwd(),"templates"),
  14.  
  15. 'static_path':os.getcwd()+"//templates//static"
  16.  
  17. }
  18.  
  19. def App():
  20.  
  21. return tornado.web.Application([
  22.  
  23. (r'/loadcolspage',loadcolspage),
  24. .........
  25.  
  26. (r'/xsfp/list', xsfp_v)],**settings)
  27.  
  28. if __name__=="__main__":
  29.  
  30. app = App()
  31.  
  32. print(("current_path:"),os.path.join(os.getcwd()+"//templates",'static'))
  33.  
  34. myserver = tornado.httpserver.HTTPServer(app)
  35.  
  36. myserver.listen()
  37.  
  38. tornado.ioloop.IOLoop.current().start()

supervisor部署tornado的更多相关文章

  1. 第八章:部署Tornado

    到目前为止,为了简单起见,在我们的例子中都是使用单一的Tornado进程运行的.这使得测试应用和快速变更非常简单,但是这不是一个合适的部署策略.部署一个应用到生产环境面临着新的挑战,既包括最优化性能, ...

  2. supervisor 部署文档

    supervisor 部署文档 supervisor 需要Python支持,如果不用系统的supervisor,单独安装python python 安装 #依赖 yum install python- ...

  3. flask +gevent+nginx+Gunicorn+supervisor部署flask应用

    上篇   可以完美部署flask ,但是视乎在结合gevent+apscheduler 实现异步非阻塞后台和定时任务的时候视乎不是那么完美.请教了前辈,决定使用flask+gevent+nginx+g ...

  4. CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目

    原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...

  5. Linux+Nginx+Supervisor部署ASP.NET Core实操手册

    一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...

  6. flask+uwsgi+supervisor部署流程

    背景: 小鱼最近搞了个工程,python用的2.7(用3也可以),后端使用的是flask,服务器用的linux,使用 flask+uwsgi+supervisor部署 ,查阅相关博客.调试.实操,已经 ...

  7. Nginx + tornado + supervisor部署

    参考链接:supervisor + Tornado + Nginx 使用详解, 用tornado ,Supervisord ,nginx架网站, tornado官方文档 项目文档树: . ├── ch ...

  8. ubutu tornado python3.7.5 nginx supervisor 部署web api

    环境: 1.Ubuntu 服务器 2.python3.7.5 安装 1.python3.7.5 安装的话还是比较简单,流程大致是./configure ->make && mak ...

  9. 阿里云服务器部署Tornado应用指南

    本篇详细介绍tornado应用部署到阿里云服务器上的全过程. Tornado程序地址:github https://github.com/ddong8/ihasy.git 准备工作:阿里云服务器Cen ...

随机推荐

  1. C#编程 socket编程之tcp服务器端和客户端

    基于Tcp协议的Socket通讯类似于B/S架构,面向连接,但不同的是服务器端可以向客户端主动推送消息. 使用Tcp协议通讯需要具备以下几个条件: (1).建立一个套接字(Socket) (2).绑定 ...

  2. Kinect数据

    原文链接 Kinect V1 和 V2 比较 Kinect V1 和 V2 的外观比较 Kinect V1 和 V2 的参数比较 Kinect V1 和 V2 随距离增加的误差分布 Kinect V1 ...

  3. python常用关键字

    转载: python关键字以及含义,用法 查看所有python关键字: import keyword print(keyword.kwlist) ['False', 'None', 'True', ' ...

  4. Laravel NPM包的使用

    示例:安装sweetalert插件 1.yarn add sweetalert 2.resources/js/bootstrap.js中引入: require('sweetalert'); $(doc ...

  5. aliyun挂载oss

    配置 oss 挂载 阿里云 ecs 按照ossfs工具:yum install http://gosspublic.alicdn.com/ossfs/ossfs_1.80.5_centos6.5_x8 ...

  6. SSH框架aop的切面表达式

    一:概述 众所周知,Spring是一个轻量级的.非侵入式的.独立于各种应用服务器的开源框架.它的两大方面被人们所熟知,也应用很广.那就是IOC(控制反转)和AOP(面向方面编程). IOC是开发者不创 ...

  7. 单页面应用 之 项目中集成插件vue-router

    \es6\my-complex-project>npm install  vue-router -S    (S 表示这个包下载到,当前的项目中) 导入写好的  router 这里尽量使用  @ ...

  8. thinkphp5.1 关于加载静态资源路径问题

    和thinkphp5.0不一样,thinkphp5.1的 thinkphp5.0的 直接在config.php文件中加入代码: <?phpreturn [ 'view_replace_str' ...

  9. Jmeter 连接远程测压__(负载测试)

    第一步: 双方关闭防火墙  打开jmeter server bat   路径如下  会出错  

  10. spring boot 配置文件动态更新原理 以Nacos为例

    配置文件的动态更新 通常获取配置文件的方式 1, @Value 2. @ConfigurationProperties(Prefix) 如果是在运行时要动态更新的话, 第一种方式要在bean上加@Re ...