tornado 11、部署生产环境
来源:互联网 发布:制作动态图片的软件 编辑:程序博客网 时间:2024/04/29 19:45
一、后台运行
一般调试过程中我们使用python app.py运行网站,方便我们在命令行中看运行状况。
但在生产环境下我们需要后台运行网站。我们可以使用linux的nohup命令。
nohup python app.py >> log/app.log &
二、supervisor守护进程
使用nuhup可以后台运行一个进程,但是一旦网站出现错误,进程关闭,网站将会停止运行。这时候就需要supervisor来帮我们守护进程,自动重启网站。
可在supervisor配置文件中添加:
[program:tornado-8000]command=python /var/www/main.py --port=8000directory=/var/wwwuser=www-dataautorestart=trueredirect_stderr=truestdout_logfile=/var/log/tornado.logloglevel=info
三、nginx代理多进程
可以使用nginx代理网站,配合supervisor实现多进程。
在app.py中添加接受命令行参数:
import tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webfrom tornado.options import define, optionsdefine("port", default=8000, help="run on the given port", type=int)class IndexHandler(tornado.web.RequestHandler): def get(self): greeting = self.get_argument('greeting', 'Hello') self.write(greeting + ', friendly user!')if __name__ == "__main__": tornado.options.parse_command_line() app = tornado.web.Application(handlers=[(r"/", IndexHandler)]) http_server = tornado.httpserver.HTTPServer(app) http_server.listen(options.port) tornado.ioloop.IOLoop.instance().start()
可在supervisor配置文件中添加:
[program:tornado-8000]command=python /var/www/main.py --port=8000directory=/var/wwwuser=www-dataautorestart=trueredirect_stderr=truestdout_logfile=/var/log/tornado.logloglevel=info[program:tornado-8001]command=python /var/www/main.py --port=8001directory=/var/wwwuser=www-dataautorestart=trueredirect_stderr=truestdout_logfile=/var/log/tornado.logloglevel=info
使用nginx代理:
user nginx;worker_processes 5;error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;events { worker_connections 1024; use epoll;}proxy_next_upstream error;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;}server { listen 80; server_name www.example.org *.example.org; 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; }}
0 0
- tornado 11、部署生产环境
- Tornado+nginx+supervisor 在生产环境上部署
- 生产环境部署Solr
- 生产环境部署hadoop
- Vue 生产环境部署
- Tornado框架11-部署
- Mycat生产实践---生产环境部署
- 生产环境部署之--Fastdfs 生产环境部署配置
- Spring Boot 生产环境部署
- react+webpack部署生产环境
- 生产环境DRBD部署安装
- 生产环境Heartbeat部署安装
- github部署到生产环境
- 生产环境下如何优雅地重启 Tornado
- Oracle 11g rac 生产环境部署详录
- tornado 部署
- 部署Tornado
- 使用Docker在生产环境部署应用
- 正则表达式与grep、sed
- POJ 2299 Ultra-QuickSort
- VS2010界面主题更换全过程——如何给VS2010换上黑色主题+黑色编辑框
- Kafka文件存储机制那些事
- PCA的数学原理
- tornado 11、部署生产环境
- 一步一图一代码,一定要让你真正彻底明白红黑树
- HashMap和Hashtable,LinkedHashMap的区别
- 深入理解Java内存模型
- 三次握手与四次挥手
- 简单谈谈Resource,Drawable和Bitmap之间的转换
- 事件拦截机制
- 前端面试---行内元素与块级元素比较的区别<转>
- java解惑——易错知识点归纳总结