×

tornadonginx上传文件

包含tornadonginx上传文件的词条

admin admin 发表于2023-04-04 23:48:09 浏览62 评论0

抢沙发发表评论

本文目录一览:

怎么用 tornado 的 asynchttpclient 异步上传文件

private byte doPost(String url, Map postPair) throws ClientProtocolException, IOException, HttpResponseException { HttpPost _httpPost = null; _httpPost = new HttpPost(url); if (postPair != null postPair.size() 0) { List nameValuePairs = new ArrayList(2); try { for (String s : postPair.keySet()) { nameValuePairs.add(new BasicNameValuePair(s, postPair.get(s))); } _httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); } catch (UnsupportedEncodingException e) } return getResponse(_httpPost); }

本地电脑上用tornado搭建好了网站,要怎么发布到网上?

第一次回答问题呀, 好紧张!!!

有几个必要的东西: 域名,服务器(我用的阿里ECS).

1. 域名备案指向你的ECS服务器.

2. 在你的服务器安装一些必要的软件: Mysql, Python(适合你的版本), Nginx(做tornado的代理), 3. Supervisord(监控tornado)

4. 使用Supervisord启动你的tornado程序.这里只要看看Supervisord配置方法就会用了.启动多个tornado程序在不同的端口.

例如:

[group:990t]

programs=990t-8000,990t-8001

[program:990t-8000]

command=python3.4 /usr/workspace/990T.CN/run.py --port=8000

directory=/usr/workspace/990T.CN/

user=www

autorestart=true

redirect_stderr=true

stdout_logfile=/var/log/supervisor/990T.CN.log

loglevel=info

[program:990t-8001]

command=python3.4 /usr/workspace/990T.CN/run.py --port=8001

directory=/usr/workspace/990T.CN/

user=www

autorestart=true

redirect_stderr=true

stdout_logfile=/var/log/supervisor/990T.CN.log

loglevel=info

5. 然后配置Nginx做tornado的代理

# Load modular configuration files from the /etc/nginx/conf.d directory.

    # See 

    # for more information.

    include /etc/nginx/conf.d/*.conf;

    upstream 990t.cn {

        server 127.0.0.1:8001;

        server 127.0.0.1:8002;

    }

# 990T.CN短链接服务

    server {

        listen  80;

        server_name     990t.cn ;

        client_max_body_size    50M;

        index   index.html index.htm;

        if ($host != '990t.cn' ) {

                rewrite ^/(.*)$  permanent;

        }

        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 ;

        }

    }

6. 上面就是我的挫方法啦, 无意中看到你的提问就回复了. 希望有所帮助!

- 平时做点积累 achais.com

如何快速有效的安装Python+Nginx+Tornado+Mysql

下面我将介绍在UNIX(LINUX、MAC下的配置方法其本一致)下如何快速搭建其运行环境:

1、安装Python

wget http //www python org/ftp/python/2.7.5/Python-2.7.5.tgz tar xvfz Python-2.7.5.tgzcd Python-2.7.5 ./configure-tornadonginx上传文件

make

sudo make install

2、安装Python的包管理工具setuptools、pip和打包工具distribute

wget http //peak telecommunity com/dist/ez_setup.py python ez_setup.py

wget http //python-distribute org/distribute_setup.py python distribute_setup.py

wget https //github com/pypa/pip/raw/master/contrib/get-pip.py python get-pip.py

3、安装Readline

sudo pip install readline

4、安装Mysql

#安装cmake wget http //www cmake org/files/v2.8/cmake-2.8.8.tar.gz

tar xvfz cmake-2.8.8.tar.gz

cd cmake-2.8.8

./configure

make

sudo make install #安装mysql wget http //cdn mysql com/Downloads/MySQL-5.5/mysql-5.5.29.tar.gz

tar xvfz mysql-5.5.29.tar.gz

cd mysql-5.5.29

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/localmysql/data/ -DMYSQL_UNIX_ADDR=/usr/localmysql/data/mysqld.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_unicode_ci -DWITH_DEBUG=0-tornadonginx上传文件

make

sudo make install #下载安装mysql-python wget

tar xvfz MySQL-python-1.2.3.tar.gz

cd MySQL-python-1.2.3 #修改site.py中mysql_config的路径(为mysql安装路径下的/bin/mysql_config), site.py

mysql_config = /usr/local/mysql/bin/mysql_config #更改完进行编译和安装 python setup.py build

sudo python setup.py install #将mysql安装路径下的lib加入到环境变量LD_LIBRARY_PATH中 export LD_LIBRARY_PATH=/usr/local/mysql/lib/:$LD_LIBRARY_PATH-tornadonginx上传文件

5、安装一些Python的常用模块和tornado

pip install tornado

pip install torndb

pip install requests

pip install markdown

6、配置Mysql

groupadd mysql useradd -g mysql mysql chown mysql.mysql -R /service/mysql/ /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf-tornadonginx上传文件

7、安装Nginx

wget tar zxvf nginx-0.8.33.tar.gz

cd nginx-0.8.33 ./configure

make

make install

8、配置nginx,编辑/usr/local/nginx/conf/nginx.conf文件

user nobody;

worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events {-tornadonginx上传文件

worker_connections 1024;

}

http {

include mime.types;

default_type application/octet-stream;

upstream snail {

server 127.0.0.1:8888;

}

sendfile on; #tcp_nopush on; keepalive_timeout 65;

proxy_read_timeout 200;

tcp_nopush on;

tcp_nodelay on;

gzip on;

gzip_min_length 1000;

gzip_proxied any;

server {

listen 80;

server_name localhost; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html;-tornadonginx上传文件

location = /50x.html {

root html;

}

location / {

proxy_pass_header Server;

proxy_set_header Host $http_host; # proxy_redirect false; proxy_set_header X-Real-IP $remote_addr;-tornadonginx上传文件

proxy_set_header X-Scheme $scheme;

proxy_pass ; }

}

}

9、创建一个项目

vi demo.py

import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world")-tornadonginx上传文件

application = tornado.web.Application([

(r"/", MainHandler),

]) if __name__ == "__main__":

application.listen(8888)

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

10、运行这个项目

#启动项目 nohup python demo.py #重启Nginx /usr/local/nginx/sbin/nginx -s reload

在浏览器中输入 看到页面输出hello word!

转载,仅供参考,祝你愉快,满意请采纳。

用python做web开发,tornado 如何部署,都是用nginx+supervisor吗

因为Tornado是异步的网络框架,性能够好,可以直接放在最外层,但是为了避免阻塞问题,会开多个进程,然后使用 Nginx 做反向代理实现负载均衡。具体可以看这篇文章 Introduction to Tornado 中文翻译。-tornadonginx上传文件

那么这里就涉及到要开多个Tornado进程的问题,使用Supervisor来做这件事是最简单的。Supervisor 的使用方法可以看这篇文章 Python 进程管理工具 Supervisor 使用教程-tornadonginx上传文件

另外,如果你需要部署Django或者 Flask,则推荐 Nginx+Gunicorn+Supervisor

Nginx放在最外层,然后使用Supervisor做进程管理,使用Gunicorn启动Django或者Flask,相较于uwsgi 的方法,简单很多,而且Gunicorn可以让你使用Gevent和Tornado来为你的后端实现异步访问,性能直接飙升。-tornadonginx上传文件

如何使用tornado的日志文件输出

默认用 Tornado 写程序,修改完代码需要将文件上传,然后重启 Supervisord (supervisorctl reload),修改的程序才能生效。但这样比较麻烦,因为需要SSH到服务器进行重启操作。Tornado 自带的调试模式可以让我们轻松不少。-tornadonginx上传文件

开启调试模式也很简单,只需要 import 一个模块即可。

import tornado.autoreload

现在将修改的文件上传之后,不需要再重启,修改的结果就会显示出来了。

另外也可以在 settings 加入 debug选项:

import tornado.httpserver

import tornado.ioloop

import tornado.options

import tornado.web

settings = {'debug' : True}

define("debug",default=True,help="Debug Mode",type=bool)

def main():

tornado.options.parse_command_line()

application = tornado.web.Application([

(r"/", MainHandler),

(r"/nowamagic/", NowaMagicHandler),

],**settings)

http_server = tornado.httpserver.HTTPServer(application)

http_server.listen(options.port)

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

Tornado 官方教程上的 settings 是这样的:

settings = {

"cookie_secret": "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",

"login_url": "/login",

"xsrf_cookies": True,

}

application = tornado.web.Application([

(r"/", MainHandler),

(r"/login", LoginHandler),

], **settings)

当然也设置settings字典可以这样:

settings = dict(

cookie_secret= "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",

login_url= "/login",

xsrf_cookies= True,

)

settings可以设置什么?

#设置templates路径:

template_path = os.path.join(os.path.dirname(__file__), "templates")

#设置静态文件解析路径:

static_path = os.path.join(os.path.dirname(__file__), "static"),

#设置防跨站请求攻击:

xsrf_cookies = True,

#默认为False,即不可防御。

#设置登陆路径,未登陆用户在操作时跳转会用到这个参数:

login_url = "/login-do",

#默认为@tornado.web.authenticated

#设置调试模式:

debug = True,

#默认为False,即不是调试模式。

#设置cookie密钥:

cookie_secret = "dskfhisdjklagkfdklag;lkjasdklgjkldsjaklgjkldsfksdklf"

#默认为字符串"secure cookies"

#设置是否自动编码:在2.0以上需要设置此项来兼容您之前的APP

autoescape = None,

#不设置默认为自动编码。

#设置template_loader,可以从独立的路径中导入template:

template_loader=utils.ZipLoader,

#其中utils为自己定义的模块,ZipLoader是tornado.template.BaseLoader的子类。

#设置gzip压缩:

gzip=True

#设置静态路径头部:

static_url_prefix = "/mystatic/",

#默认是"/static/"

#设置静态文件处理类:

static_handler_class = MyStaticFileHandler,

#默认是tornado.web.StaticFileHandler

#设置静态文件的参数:

static_handler_args = { "key1":"value1", "key2":"value2" }

#默认为空字典。

#设置日志处理函数

log_function = your_fun,

# 日志处理函数your_fun,按照自己的意图记录日志。

调试模式的缺点是:只感知.py文件的改变,模版的改变不会加载,有些特殊的错误,比如import的错误,就会直接让服务下线,到时候还得手动重启。还有就是调试模式和 HTTPServer 的多进程模式不兼容。在调试模式下,你必须将 HTTPServer.start 的参数设为不大于 1 的数字。-tornadonginx上传文件